JSFiddle - React, Tailwind, and code Playground
by shaunxcode
CoffeeScript
keywords = {}
keyword = (val) ->
if not keywords[val]
fn = (o) -> o[val]
fn.toString = -> val
fn.ednEncode = -> ":#{val}"
fn.isKeyword = true
keywords[val] = fn
keywords[val]
symbols = {}
symbol = (val) ->
if not symbols[val]
fn = (o) -> o[val]
fn.toString = -> val
fn.ednEncode = -> val
fn.isSymbol = true
symbols[val] = fn
symbols[val]
name = keyword "person/name"
age = keyword "person/age"
console.log name + " is shaun"
person = {}
person[name] = "walter"
console.log person[name], name person
console.log (name person) is person[name]
console.log name.ednEncode?, name.ednEncode()
console.log keyword("cat") is keyword("cat")
d =
find: keyword "find"
in: keyword "in"
where: keyword "where"
_x = symbol "?x"
_name = symbol "?name"
_age = symbol "?age"
console.log [d.find, _x, _name, _age,
d.where, [_x, name, _name],
[_x, age, _age]]