我想测试一下我使用Racket编写的lambda微积分函数,但没有太多运气与测试用例。例如,给定的定义如何在球拍中应用lambda演算规则?
; successor function
(define my_succ (λ (one)
(λ (two)
(λ (three)
(two ((one two) three))))))
我试图将它应用到1 2 3,期望的2的后继者是3通过执行
(((my_succ 1) 2) 3)
逻辑是,由于my_succ是一个函数,它一个arg并将其传递给另一个函数,该函数接受一个将其传递给第三个函数的arg,该函数接受一个arg。但我得到
application: not a procedure;
expected a procedure that can be applied to arguments
given: 1
arguments.:
我试过谷歌搜索,并找到了很多规则的代码,但没有应用这些规则的例子。我应该如何调用上述后继函数来测试它?