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]]