AST, あるいは値を文字列に変換する関数。
Haskell流にshow
としても良いかもしれない。
Symbol
値のようなものは、print → 再parseを経ると異なる値になるつまり、値それ自身にはprint関数は必要無く、同じ評価値を返すASTに変換する関数 toAST
があれば良い。ASTには必ず print
関数が実装されているので。
(let x = type [...number]
(def “a” 10)
は評価置換できない(def “a” (+ 1 2))
から返されたIOアクション値が指すのは、この式それ自体となる。評価置換された際には、せめて (def “a” 3)
になっていて欲しいような気もする(if true (+ 1 2) (* 3 4))
の展開は 3
ではなく、マクロ的に (+ 1 2)
になっていて欲しい。toAST
できない。JavaScriptでいう [native code]
のように表示するしかない。