【发布时间】:2015-09-04 02:41:27
【问题描述】:
我正在尝试测试一些我使用 Racket 编写的 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.:
我尝试了谷歌搜索并找到了很多规则代码,但没有应用这些规则的示例。我应该如何调用上面的后继函数来测试它?
【问题讨论】: