Initial data commit
This commit is contained in:
parent
72d218235f
commit
f23f22d71c
199087 changed files with 3378941 additions and 0 deletions
21
Task/Y-combinator/Standard-ML/y-combinator-1.ml
Normal file
21
Task/Y-combinator/Standard-ML/y-combinator-1.ml
Normal file
|
|
@ -0,0 +1,21 @@
|
|||
- datatype 'a mu = Roll of ('a mu -> 'a)
|
||||
fun unroll (Roll x) = x
|
||||
|
||||
fun fix f = (fn x => fn a => f (unroll x x) a) (Roll (fn x => fn a => f (unroll x x) a))
|
||||
|
||||
fun fac f 0 = 1
|
||||
| fac f n = n * f (n-1)
|
||||
|
||||
fun fib f 0 = 0
|
||||
| fib f 1 = 1
|
||||
| fib f n = f (n-1) + f (n-2)
|
||||
;
|
||||
datatype 'a mu = Roll of 'a mu -> 'a
|
||||
val unroll = fn : 'a mu -> 'a mu -> 'a
|
||||
val fix = fn : (('a -> 'b) -> 'a -> 'b) -> 'a -> 'b
|
||||
val fac = fn : (int -> int) -> int -> int
|
||||
val fib = fn : (int -> int) -> int -> int
|
||||
- List.tabulate (10, fix fac);
|
||||
val it = [1,1,2,6,24,120,720,5040,40320,362880] : int list
|
||||
- List.tabulate (10, fix fib);
|
||||
val it = [0,1,1,2,3,5,8,13,21,34] : int list
|
||||
1
Task/Y-combinator/Standard-ML/y-combinator-2.ml
Normal file
1
Task/Y-combinator/Standard-ML/y-combinator-2.ml
Normal file
|
|
@ -0,0 +1 @@
|
|||
fun fix f x = f (fix f) x
|
||||
Loading…
Add table
Add a link
Reference in a new issue