[
// define some_fun(x) => let y=2;let z=y*3;return x+z
{"some_fun": [["x"], [
{"y": 2,
"z": ["*", "y", 3]},
["+", "x", "z"]
]},
// call it
["some_fun", 100]
]
Here I'm using JSON dictionaries to bind variables, and lists for everything else (instruction sequences, argument lists, etc.). Now I can quote stuff to define JSON data, or otherwise define programs.I'm not a lisper but it seems what's special about lisp is it defines its programs in a generic data format.