funcons-simple-0.1.0.3: tests/Advanced/Advanced5.fct
initialise-binding initialise-storing initialise-giving finalise-failing finalise-throwing scope
(collateral (bind
("main",
allocate-variable (functions
(tuples ((values)*),
values)))),
sequential (assign
(bound ("main"),
function closure (scope
(match
(given,
tuple ()),
handle-return (scope
(bind
("n",
allocate-initialised-variable
(values,
decimal-natural ("15"))),
scope
(bind
("fib",
allocate-nested-vectors (integer-add
(assigned (bound ("n")),
decimal-natural ("2")))),
sequential
(effect (give
(decimal-natural ("0"),
sequential
(assign
(checked index
(integer-add
(1,
decimal-natural ("0")),
vector-elements (assigned (bound ("fib")))),
given),
given))),
effect (give
(decimal-natural ("1"),
sequential
(assign
(checked index
(integer-add
(1,
decimal-natural ("1")),
vector-elements (assigned (bound ("fib")))),
given),
given))),
scope
(bind
("i",
allocate-initialised-variable
(values,
decimal-natural ("0"))),
while
(is-less
(assigned (bound ("i")),
assigned (bound ("n"))),
sequential
(sequential
(effect (give
(integer-add
(assigned (checked index
(integer-add
(1,
assigned (bound ("i"))),
vector-elements (assigned (bound ("fib"))))),
assigned (checked index
(integer-add
(1,
integer-add
(assigned (bound ("i")),
decimal-natural ("1"))),
vector-elements (assigned (bound ("fib")))))),
sequential
(assign
(checked index
(integer-add
(1,
integer-add
(assigned (bound ("i")),
decimal-natural ("2"))),
vector-elements (assigned (bound ("fib")))),
given),
given))),
print (assigned (checked index
(integer-add
(1,
assigned (bound ("i"))),
vector-elements (assigned (bound ("fib"))))))),
effect (give
(bound ("i"),
sequential
(assign
(given,
integer-add
(assigned (given),
1)),
assigned (given)))))))))))))),
apply
(assigned (bound ("main")),
tuple ())))