Another update from ingydotnet^djgoku
This commit is contained in:
parent
91df62d461
commit
948b86eafa
7604 changed files with 108452 additions and 22726 deletions
|
|
@ -1,18 +1,19 @@
|
|||
#define system.
|
||||
#define extensions.
|
||||
|
||||
#symbol fibo = (:n)
|
||||
[
|
||||
n < 0
|
||||
? [ #throw InvalidArgumentException new:"Must be non negative". ].
|
||||
(n < 0)
|
||||
? [ #throw InvalidArgumentException new &message:"Must be non negative". ].
|
||||
|
||||
^ { eval:n [ ^ (n > 1) ? [ ($self:(n - 2)) + ($self:(n - 1)) ] ! [ n ]. ] }:n.
|
||||
].
|
||||
|
||||
#symbol program =
|
||||
[
|
||||
control forrange &int:-1 &int:10 &do: (&int:i)
|
||||
-1 to:10 &doEach: (:i)
|
||||
[
|
||||
console << "fib(" << i << ")=".
|
||||
console writeLiteral:"fib(":i:")=".
|
||||
|
||||
console writeLine:(fibo:i) | if &InvalidArgumentError: e
|
||||
[
|
||||
|
|
|
|||
13
Task/Anonymous-recursion/Elixir/anonymous-recursion.elixir
Normal file
13
Task/Anonymous-recursion/Elixir/anonymous-recursion.elixir
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
fib = fn f -> (
|
||||
fn x -> if x == 0, do: 0, else: (if x == 1, do: 1, else: f.(x - 1) + f.(x - 2)) end
|
||||
)
|
||||
end
|
||||
|
||||
y = fn x -> (
|
||||
fn f -> f.(f)
|
||||
end).(
|
||||
fn g -> x.(fn z ->(g.(g)).(z) end)
|
||||
end)
|
||||
end
|
||||
|
||||
IO.inspect y.(&(fib.(&1))).(40)
|
||||
1
Task/Anonymous-recursion/J/anonymous-recursion-3.j
Normal file
1
Task/Anonymous-recursion/J/anonymous-recursion-3.j
Normal file
|
|
@ -0,0 +1 @@
|
|||
basis ` ($: @: g) @. test
|
||||
1
Task/Anonymous-recursion/J/anonymous-recursion-4.j
Normal file
1
Task/Anonymous-recursion/J/anonymous-recursion-4.j
Normal file
|
|
@ -0,0 +1 @@
|
|||
basis @: (g^:test^:_)
|
||||
|
|
@ -1,11 +1,7 @@
|
|||
function fibo(n) {
|
||||
if (n < 0)
|
||||
throw "Argument cannot be negative";
|
||||
else
|
||||
return (function(n) {
|
||||
if (n < 2)
|
||||
return 1;
|
||||
else
|
||||
return arguments.callee(n-1) + arguments.callee(n-2);
|
||||
})(n);
|
||||
if (n < 0) { throw "Argument cannot be negative"; }
|
||||
|
||||
return (function(n) {
|
||||
return (n < 2) ? 1 : arguments.callee(n-1) + arguments.callee(n-2);
|
||||
})(n);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,11 +1,7 @@
|
|||
function fibo(n) {
|
||||
if (n < 0)
|
||||
throw "Argument cannot be negative";
|
||||
else
|
||||
return (function fib(n) {
|
||||
if (n < 2)
|
||||
return 1;
|
||||
else
|
||||
return fib(n-1) + fib(n-2);
|
||||
})(n);
|
||||
if (n < 0) { throw "Argument cannot be negative"; }
|
||||
|
||||
return (function fib(n) {
|
||||
return (n < 2) ? 1 : fib(n-1) + fib(n-2);
|
||||
})(n);
|
||||
}
|
||||
|
|
|
|||
1
Task/Anonymous-recursion/REBOL/anonymous-recursion.rebol
Normal file
1
Task/Anonymous-recursion/REBOL/anonymous-recursion.rebol
Normal file
|
|
@ -0,0 +1 @@
|
|||
fib: func [n /f][ do f: func [m] [ either m < 2 [m][(f m - 1) + f m - 2]] n]
|
||||
|
|
@ -1,17 +1,16 @@
|
|||
@(do
|
||||
(defmacro recursive ((. parm-init-pairs) . body)
|
||||
(let ((hidden-name (gensym "RECURSIVE-")))
|
||||
^(macrolet ((recurse (. args) ^(,',hidden-name ,*args)))
|
||||
(labels ((,hidden-name (,*[mapcar first parm-init-pairs]) ,*body))
|
||||
(,hidden-name ,*[mapcar second parm-init-pairs])))))
|
||||
(defmacro recursive ((. parm-init-pairs) . body)
|
||||
(let ((hidden-name (gensym "RECURSIVE-")))
|
||||
^(macrolet ((recurse (. args) ^(,',hidden-name ,*args)))
|
||||
(labels ((,hidden-name (,*[mapcar first parm-init-pairs]) ,*body))
|
||||
(,hidden-name ,*[mapcar second parm-init-pairs])))))
|
||||
|
||||
(defun fib (number)
|
||||
(if (< number 0)
|
||||
(error "Error. The number entered: ~a is negative" number)
|
||||
(recursive ((n number) (a 0) (b 1))
|
||||
(if (= n 0)
|
||||
a
|
||||
(recurse (- n 1) b (+ a b))))))
|
||||
(defun fib (number)
|
||||
(if (< number 0)
|
||||
(error "Error. The number entered: ~a is negative" number)
|
||||
(recursive ((n number) (a 0) (b 1))
|
||||
(if (= n 0)
|
||||
a
|
||||
(recurse (- n 1) b (+ a b))))))
|
||||
|
||||
(put-line `fib(10) = @(fib 10)`)
|
||||
(put-line `fib(-1) = @(fib -1)`))
|
||||
(put-line `fib(10) = @(fib 10)`)
|
||||
(put-line `fib(-1) = @(fib -1)`))
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue