packages feed

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 ())))