Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Symbols and Lykn Keywords

Lykn keywords (:name, :age) compile to strings. Symbols are a different mechanism for property keys — guaranteed unique, not enumerable, not serializable.

When to Use Which

Keywords (:name"name"): normal property access, obj construction, match patterns, JSON-serializable data. This is the default for virtually all Lykn code.

Symbols: collision-free extension of objects you don’t own, implementing protocols (Symbol:iterator), hiding implementation details from casual enumeration.

Most Lykn code uses keywords exclusively. Symbols appear in interop (implementing Symbol:iterator for custom iterable types) and in advanced patterns (metadata keys, framework extension points). If you’re not implementing a protocol or extending foreign objects, you don’t need symbols.