Family Day update
This commit is contained in:
parent
aac6731f2c
commit
9ad63ea473
2442 changed files with 39761 additions and 8255 deletions
|
|
@ -36,9 +36,7 @@ type fx func(fx) fn
|
|||
|
||||
func yc(f ff) fn {
|
||||
return func(x fx) fn {
|
||||
return f(func(a1, a2, a3 int) int {
|
||||
return x(x)(a1, a2, a3)
|
||||
})
|
||||
return x(x)
|
||||
}(func(x fx) fn {
|
||||
return f(func(a1, a2, a3 int) int {
|
||||
return x(x)(a1, a2, a3)
|
||||
|
|
|
|||
18
Task/Anonymous-recursion/Phix/anonymous-recursion-1.phix
Normal file
18
Task/Anonymous-recursion/Phix/anonymous-recursion-1.phix
Normal file
|
|
@ -0,0 +1,18 @@
|
|||
class Fib
|
||||
private function fib_i(integer n)
|
||||
return iff(n<2?n:this.fib_i(n-1)+this.fib_i(n-2))
|
||||
end function
|
||||
public function fib(integer n)
|
||||
if n<0 then throw("constraint error") end if
|
||||
return this.fib_i(n)
|
||||
end function
|
||||
end class
|
||||
Fib f = new()
|
||||
|
||||
function fib_i(integer i)
|
||||
return sprintf("this is not the fib_i(%d) you are looking for\n",i)
|
||||
end function
|
||||
|
||||
?f.fib(10)
|
||||
--?f.fib_i(10) -- illegal
|
||||
?fib_i(10)
|
||||
10
Task/Anonymous-recursion/Phix/anonymous-recursion-2.phix
Normal file
10
Task/Anonymous-recursion/Phix/anonymous-recursion-2.phix
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
function erm(integer n, f)
|
||||
return f(n,f)
|
||||
end function
|
||||
|
||||
function fib(integer n)
|
||||
if n<0 then throw("constraint error") end if
|
||||
return erm(n,function(integer n,f) return iff(n<2?n:f(n-1,f)+f(n-2,f)) end function)
|
||||
end function
|
||||
|
||||
?fib(10)
|
||||
4
Task/Anonymous-recursion/Python/anonymous-recursion-5.py
Normal file
4
Task/Anonymous-recursion/Python/anonymous-recursion-5.py
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
>>> Y = lambda f: lambda n: f(f,n)
|
||||
>>> fib = lambda f, n: None if n < 0 else (0 if n == 0 else (1 if n == 1 else f(f,n-1) + f(f,n-2))) #same as the first three implementations
|
||||
>>> [ Y(fib)(i) for i in range(-2, 10) ]
|
||||
[None, None, 0, 1, 1, 2, 3, 5, 8, 13, 21, 34]
|
||||
3
Task/Anonymous-recursion/Python/anonymous-recursion-6.py
Normal file
3
Task/Anonymous-recursion/Python/anonymous-recursion-6.py
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
>>> fib_func = (lambda f: lambda n: f(f,n))(lambda f, n: None if n < 0 else (0 if n == 0 else (1 if n == 1 else f(f,n-1) + f(f,n-2))))
|
||||
>>> [ fib_func(i) for i in range(-2, 10) ]
|
||||
[None, None, 0, 1, 1, 2, 3, 5, 8, 13, 21, 34]
|
||||
Loading…
Add table
Add a link
Reference in a new issue