55 lines
1.1 KiB
AppleScript
55 lines
1.1 KiB
AppleScript
to |Y|(f)
|
|
script x
|
|
to funcall(y)
|
|
script
|
|
to funcall(arg)
|
|
y's funcall(y)'s funcall(arg)
|
|
end funcall
|
|
end script
|
|
f's funcall(result)
|
|
end funcall
|
|
end script
|
|
x's funcall(x)
|
|
end |Y|
|
|
|
|
script
|
|
to funcall(f)
|
|
script
|
|
to funcall(n)
|
|
if n = 0 then return 1
|
|
n * (f's funcall(n - 1))
|
|
end funcall
|
|
end script
|
|
end funcall
|
|
end script
|
|
set fact to |Y|(result)
|
|
|
|
script
|
|
to funcall(f)
|
|
script
|
|
to funcall(n)
|
|
if n = 0 then return 0
|
|
if n = 1 then return 1
|
|
(f's funcall(n - 2)) + (f's funcall(n - 1))
|
|
end funcall
|
|
end script
|
|
end funcall
|
|
end script
|
|
set fib to |Y|(result)
|
|
|
|
set facts to {}
|
|
repeat with i from 0 to 11
|
|
set end of facts to fact's funcall(i)
|
|
end repeat
|
|
|
|
set fibs to {}
|
|
repeat with i from 0 to 20
|
|
set end of fibs to fib's funcall(i)
|
|
end repeat
|
|
|
|
{facts:facts, fibs:fibs}
|
|
(*
|
|
{facts:{1, 1, 2, 6, 24, 120, 720, 5040, 40320, 362880, 3628800, 39916800},
|
|
fibs:{0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597, 2584, 4181, 6765}}
|
|
*)
|