35 lines
1.2 KiB
AppleScript
35 lines
1.2 KiB
AppleScript
|
|
on fibonacci(n) -- "Anonymous recursion" task.
|
|||
|
|
-- For the sake of the task, a needlessly anonymous local script object containing a needlessly recursive handler.
|
|||
|
|
-- The script could easily (and ideally should) be assigned to a local variable.
|
|||
|
|
script
|
|||
|
|
property one : 1
|
|||
|
|
property sequence : {}
|
|||
|
|
|
|||
|
|
on f(n)
|
|||
|
|
if (n < 2) then
|
|||
|
|
set end of my sequence to 0
|
|||
|
|
if (n is 1) then set end of my sequence to one
|
|||
|
|
else
|
|||
|
|
f(n - 1)
|
|||
|
|
set end of my sequence to (item -2 of my sequence) + (end of my sequence)
|
|||
|
|
end if
|
|||
|
|
end f
|
|||
|
|
end script
|
|||
|
|
|
|||
|
|
-- Don't insert any additional code here!
|
|||
|
|
|
|||
|
|
-- Sort out whether the input's positive or negative and tell the object generated above to do the recursive business.
|
|||
|
|
tell result
|
|||
|
|
if (n < 0) then
|
|||
|
|
set its one to -1
|
|||
|
|
set n to -n
|
|||
|
|
end if
|
|||
|
|
f(n)
|
|||
|
|
|
|||
|
|
return its sequence
|
|||
|
|
end tell
|
|||
|
|
end fibonacci
|
|||
|
|
|
|||
|
|
fibonacci(15) --> {0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610}
|
|||
|
|
fibonacci(-15) --> {0, -1, -1, -2, -3, -5, -8, -13, -21, -34, -55, -89, -144, -233, -377, -610}
|