>>235
基本的にはそうですね。
しかし、どうやって式として扱えるようにするかはとても難しいんですよ。

現状、
[if, [=,[+,1,2],4],111, 222]
if[=[+[1,2],4],111,222]
if (=[+[1,2],4]) [111,222]
if (= (+[ 1, 2]) 4 []) 111 222 []
if (= (+ 1 2 []) 4 []) 111 222 []
(if (= (+ 1 2 []) 4 []) 111 222 [])

が等価な式というものを考えました。
さらに、
(if (= (+ 1 2) 4) 111 222)
と等価であるものにしようと考えています。

こういう言語が他にあったら、誰か教えてください。