-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