Symbol/keyword syntax (:name) #148
Labels
No labels
bug
dependencies
documentation
duplicate
enhancement
good first issue
help wanted
invalid
question
refactor
rust
technical-debt
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
navicore/patch-seq#148
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Context
SON (Seq Object Notation) envisions syntax like:
This requires a symbol or keyword type - a lightweight interned identifier.
Proposed Syntax
Implementation
Parser changes
:identifieras a new token typeStatement::Symbol(String)or similarRuntime changes
Value::Symbol(SeqString)variantCodegen changes
Design Questions
:prefix?:fooand"foo"related? Can you convert between them?:CamelCaseor enforce:kebab-case?Prior Art
:foo:foo:foo'fooRelation to SON
Symbols enable dynamic variant construction:
Without symbols, SON can't represent tagged data portably.
Part of the SON implementation roadmap.
Blocked by: nothing
Blocks: #148 (dynamic variant construction)
https://github.com/navicore/patch-seq/pull/165