このIF-THEN-ELSEラムダ計算コードを作成しました
(defvar IF-THEN-ELSE
#'(lambda(con)
#'(lambda(x)
#'(lambda(y)
#'(lambda(acc1)
#'(lambda (acc2)
(funcall (funcall (funcall (funcall con x) y) acc1) acc2))))))
)
(defun IF-THEN-ELSEOP(c x y a1 a2)
(funcall (funcall (funcall (funcall (funcall IF-THEN-ELSE c) x) y) a1) a2)
)
そして、このGreater or Equal演算子
(defvar GEQ
#'(lambda(p)
#'(lambda(q)
(funcall #'LEQOP q p)))
)
LEQOP は「Less or Equal」の機能であり、問題なく動作します。したがって、このように IF-THEN-ELSE を呼び出すと (「6」と「2」は教会番号です)
(if-then-elseop GEQ six two (print "THIS") (print "THAT"))
私が持っている出力として
"THIS"
"THAT"
"THIS"
私が渡している両方の関数が呼び出されています。出力「THIS」としてのみ取得するには、どうすれば回避できますか?
これは私が使用するすべての関数で発生します。再帰呼び出しで IF-THEN-ELSE を使用したいので、これは問題です。
どんな助けでもいただければ幸いです
ありがとう。