ycomb.scm
来自「Y-combinator 解决fibonacci数列的一个实现」· SCM 代码 · 共 54 行
SCM
54 行
(define fact-maker
(lambda(proc)
(lambda(n)
(if (= n 0)
1
(* n ((proc proc) (- n 1)))))))
(define fact
((lambda(proc)
(lambda(n)
(if (= n 0)
1
(* n ((proc proc) (- n 1))))))
(lambda (proc)
(lambda (n)
(if (= n 0)
1
(* n ((proc proc) (- n 1))))))))
(define Y
(lambda(X)
((lambda(proc)
(X (lambda(arg) ((proc proc) arg))))
(lambda(proc)
(X (lambda(arg) ((proc proc) arg)))))))
(define fib
(lambda(proc)
(lambda(n)
(if (zero? n)
1
(* n (proc (- n 1)))))))
(define Y
(lambda (P)
(let ((power-gen (lambda (self)
(P (lambda(arg) ((self self) arg))))))
(power-gen power-gen))))
;test findmax
(define (findmax l)
(if (null? l)
'non-list
(if (null? (cdr l))
(car l)
(max (car l) (findmax (cdr l))))))
(define fm
(lambda (proc)
(lambda (l)
(if (null? l)
'non
(if (null? (cdr l))
(car l)
(max (car l) (proc (cdr l))))))))
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?