list/reduce

l o s


Summary

C<span class="arg-ref" arg-i="2">ospan>mbine a<span class="arg-ref" arg-i="1">lspan><span class="arg-ref" arg-i="1">lspan> e<span class="arg-ref" arg-i="1">lspan>ements in <span class="arg-ref" arg-i="1">lspan> using <span class="arg-ref" arg-i="2">ospan>perati<span class="arg-ref" arg-i="2">ospan>n <span class="arg-ref" arg-i="2">ospan> and starting va<span class="arg-ref" arg-i="1">lspan>ue s

Bytecode

Probably only interesting to you if you want to understand more about the Nujel VM or care very much about performance.

(    0 ($let))
(    1 ($get/val 'l))
(    3 ($det/val 'ΓεnΣym-1))
(    5 ($drop))
(    6 ($push/nil))
(    7 ($jmp* 96))
(   10 ($drop))
(   11 ($push/val :pair))
(   13 ($get/val 'type-of))
(   15 ($get/val 'ΓεnΣym-1))
(   17 ($apply 1))
(   19 ($=))
(   20 ($jf* 7))
(   23 ($push/nil))
(   24 ($jmp* 21))
(   27 ($get/val 'throw))
(   29 ($get/val 'list))
(   31 ($push/val :type-error))
(   33 ($push/val Improper list detected, please provide a proper list instead))
(   35 ($get/val 'l))
(   37 ($get/val 'current-lambda))
(   39 ($apply 0))
(   41 ($apply 4))
(   43 ($apply 1))
(   45 ($drop))
(   46 ($get/val 'type-of))
(   48 ($get/val 'ΓεnΣym-1))
(   50 ($apply 1))
(   52 ($push/val :pair))
(   54 ($=))
(   55 ($jf* 7))
(   58 ($push/nil))
(   59 ($jmp* 21))
(   62 ($get/val 'throw))
(   64 ($get/val 'list))
(   66 ($push/val :type-error))
(   68 ($push/val Expected a value of type :pair))
(   70 ($get/val 'ΓεnΣym-1))
(   72 ($get/val 'current-lambda))
(   74 ($apply 0))
(   76 ($apply 4))
(   78 ($apply 1))
(   80 ($drop))
(   81 ($get/val 'ΓεnΣym-1))
(   83 ($car))
(   84 ($det/val 'e))
(   86 ($drop))
(   87 ($get/val 'o))
(   89 ($get/val 's))
(   91 ($get/val 'e))
(   93 ($apply 2))
(   95 ($set/val 's))
(   97 ($drop))
(   98 ($get/val 'ΓεnΣym-1))
(  100 ($cdr))
(  101 ($set/val 'ΓεnΣym-1))
(  103 ($get/val 'ΓεnΣym-1))
(  105 ($jt* -95))
(  108 ($drop))
(  109 ($get/val 's))
(  111 ($closure/pop))
(  112 ($ret))