-1
我试图做SICP练习2.6在迅速大约是church numerals转换方案lambda来迅速关闭
零在方案定义为
(define zero (lambda (f) (lambda (x) x)))
转化为迅速闭合,我认为是
let zeroR = {(x:Int)->Int in return x}
let zero = {(f:(Int)->Int)->(Int)->Int in return zeroR}
但问题是附加1的定义是在方案
(define (add-1 n)
(lambda (f) (lambda (x) (f ((n f) x)))))
我无法将其转换为swift闭包版本。一些想法?
谢谢。
所以你基本上要递归lambda表达式? – luk2302
这里是关于在Swift中实现Church编码的另一个问题:http://stackoverflow.com/questions/33597144/swift-higher-order-function-church-pair-order-cons-with-generic-parameter-types。我对这些东西了解不多,但如果我理解正确的话,目前在Swift中是不可能的。 –
@ luk2302没有递归。 – molbdnilo