90 lines
2.6 KiB
Plaintext
90 lines
2.6 KiB
Plaintext
initialise-binding scope
|
|
(collateral
|
|
(bind
|
|
("fib",
|
|
function abstraction
|
|
(scope
|
|
(collateral
|
|
(map
|
|
( ),
|
|
map
|
|
( ),
|
|
map
|
|
( ),
|
|
bind
|
|
("n",
|
|
allocate-initialised-variable
|
|
(integers,
|
|
checked head
|
|
given))),
|
|
sequential
|
|
(if-else
|
|
(is-less-or-equal
|
|
(assigned
|
|
(bound
|
|
("n")),
|
|
decimal-natural
|
|
("1")),
|
|
scope
|
|
(collateral
|
|
(map
|
|
( )),
|
|
return assigned
|
|
(bound
|
|
("n"))),
|
|
null),
|
|
return int-add
|
|
(handle-return apply
|
|
(bound "fib",
|
|
list
|
|
(integer-subtract
|
|
(assigned
|
|
(bound
|
|
("n")),
|
|
decimal-natural
|
|
("1")))),
|
|
handle-return apply
|
|
(bound "fib",
|
|
list
|
|
(integer-subtract
|
|
(assigned
|
|
(bound
|
|
("n")),
|
|
decimal-natural
|
|
("2"))))))))),
|
|
map
|
|
( ),
|
|
map
|
|
( )),
|
|
sequential
|
|
(null,
|
|
scope
|
|
(bind
|
|
("n",
|
|
allocate-initialised-variable
|
|
(integers,
|
|
0)),
|
|
while
|
|
(is-less
|
|
(assigned
|
|
(bound
|
|
("n")),
|
|
decimal-natural
|
|
("5")),
|
|
sequential
|
|
(scope
|
|
(collateral
|
|
(map
|
|
( )),
|
|
print handle-return apply
|
|
(bound "fib",
|
|
list
|
|
(assigned
|
|
(bound
|
|
("n"))))),
|
|
assign
|
|
(bound "n",
|
|
int-add
|
|
(1,
|
|
assigned bound
|
|
"n"))))))) |