Add tasks for all the new languages
This commit is contained in:
parent
9dc3c2bb62
commit
bba7bfd280
13208 changed files with 134745 additions and 0 deletions
23
Task/Y-combinator/EchoLisp/y-combinator.echolisp
Normal file
23
Task/Y-combinator/EchoLisp/y-combinator.echolisp
Normal file
|
|
@ -0,0 +1,23 @@
|
|||
;; Ref : http://www.ece.uc.edu/~franco/C511/html/Scheme/ycomb.html
|
||||
|
||||
(define Y
|
||||
(lambda (X)
|
||||
((lambda (procedure)
|
||||
(X (lambda (arg) ((procedure procedure) arg))))
|
||||
(lambda (procedure)
|
||||
(X (lambda (arg) ((procedure procedure) arg)))))))
|
||||
|
||||
; Fib
|
||||
(define Fib* (lambda (func-arg)
|
||||
(lambda (n) (if (< n 2) n (+ (func-arg (- n 1)) (func-arg (- n 2)))))))
|
||||
(define fib (Y Fib*))
|
||||
(fib 6)
|
||||
→ 8
|
||||
|
||||
; Fact
|
||||
(define F*
|
||||
(lambda (func-arg) (lambda (n) (if (zero? n) 1 (* n (func-arg (- n 1)))))))
|
||||
(define fact (Y F*))
|
||||
|
||||
(fact 10)
|
||||
→ 3628800
|
||||
Loading…
Add table
Add a link
Reference in a new issue