Data update
This commit is contained in:
parent
ed705008a8
commit
0df55f9f24
2196 changed files with 32999 additions and 3075 deletions
|
|
@ -1,3 +1,6 @@
|
|||
Y <- function(f) {
|
||||
(function(x) { (x)(x) })( function(y) { f( (function(a) {y(y)})(a) ) } )
|
||||
}
|
||||
#' Y = λf.(λs.ss)(λx.f(xx))
|
||||
#' Z = λf.(λs.ss)(λx.f(λz.(xx)z))
|
||||
#'
|
||||
|
||||
fixp.Y <- \ (f) (\ (x) (x) (x)) (\ (y) (f) ((y) (y))) # y-combinator
|
||||
fixp.Z <- \ (f) (\ (x) (x) (x)) (\ (y) (f) (\ (...) (y) (y) (...))) # z-combinator
|
||||
|
|
|
|||
|
|
@ -1,17 +1,5 @@
|
|||
fac <- function(f) {
|
||||
function(n) {
|
||||
if (n<2)
|
||||
1
|
||||
else
|
||||
n*f(n-1)
|
||||
}
|
||||
}
|
||||
fac.y <- fixp.Y (\ (f) \ (n) if (n<2) 1 else n*f(n-1))
|
||||
fac.y(9) # [1] 362880
|
||||
|
||||
fib <- function(f) {
|
||||
function(n) {
|
||||
if (n <= 1)
|
||||
n
|
||||
else
|
||||
f(n-1) + f(n-2)
|
||||
}
|
||||
}
|
||||
fib.y <- fixp.Y (\ (f) \ (n) if (n <= 1) n else f(n-1) + f(n-2))
|
||||
fib.y(9) # [1] 34
|
||||
|
|
|
|||
|
|
@ -1,2 +1,5 @@
|
|||
for(i in 1:9) print(Y(fac)(i))
|
||||
for(i in 1:9) print(Y(fib)(i))
|
||||
fac.z <- fixp.Z (\ (f) \ (n) if (n<2) 1 else n*f(n-1))
|
||||
fac.z(9) # [1] 362880
|
||||
|
||||
fib.z <- fixp.Z (\ (f) \ (n) if (n <= 1) n else f(n-1) + f(n-2))
|
||||
fib.z(9) # [1] 34
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue