Initial data commit
This commit is contained in:
parent
72d218235f
commit
f23f22d71c
199087 changed files with 3378941 additions and 0 deletions
8
Task/Y-combinator/Racket/y-combinator-1.rkt
Normal file
8
Task/Y-combinator/Racket/y-combinator-1.rkt
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
#lang lazy
|
||||
|
||||
(define Y (λ (f) ((λ (x) (f (x x))) (λ (x) (f (x x))))))
|
||||
|
||||
(define Fact
|
||||
(Y (λ (fact) (λ (n) (if (zero? n) 1 (* n (fact (- n 1))))))))
|
||||
(define Fib
|
||||
(Y (λ (fib) (λ (n) (if (<= n 1) n (+ (fib (- n 1)) (fib (- n 2))))))))
|
||||
3
Task/Y-combinator/Racket/y-combinator-2.rkt
Normal file
3
Task/Y-combinator/Racket/y-combinator-2.rkt
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
#lang racket
|
||||
(define Y (λ (b) ((λ (f) (b (λ (x) ((f f) x))))
|
||||
(λ (f) (b (λ (x) ((f f) x)))))))
|
||||
17
Task/Y-combinator/Racket/y-combinator-3.rkt
Normal file
17
Task/Y-combinator/Racket/y-combinator-3.rkt
Normal file
|
|
@ -0,0 +1,17 @@
|
|||
#lang typed/racket
|
||||
|
||||
(: make-recursive : (All (S T) ((S -> T) -> (S -> T)) -> (S -> T)))
|
||||
(define-type Tau (All (S T) (Rec this (this -> (S -> T)))))
|
||||
(define (make-recursive f)
|
||||
((lambda: ([x : (Tau S T)]) (f (lambda (z) ((x x) z))))
|
||||
(lambda: ([x : (Tau S T)]) (f (lambda (z) ((x x) z))))))
|
||||
|
||||
(: fact : Number -> Number)
|
||||
(define fact (make-recursive
|
||||
(lambda: ([fact : (Number -> Number)])
|
||||
(lambda: ([n : Number])
|
||||
(if (zero? n)
|
||||
1
|
||||
(* n (fact (- n 1))))))))
|
||||
|
||||
(fact 5)
|
||||
Loading…
Add table
Add a link
Reference in a new issue