reduce

l f α


Summary

Combine af" arg-i="1">lf" arg-i="1">l ef" arg-i="1">lements in cof" arg-i="1">lf" arg-i="1">lection f" arg-i="1">l using operation F and starting vaf" arg-i="1">lue α

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 'type-of))
(    3 ($get/val 'l))
(    5 ($apply 1))
(    7 ($det/val 'ΓεnΣym-3))
(    9 ($drop))
(   10 ($get/val 'ΓεnΣym-3))
(   12 ($push/val :nil))
(   14 ($=))
(   15 ($jf* 8))
(   18 ($get/val ))
(   20 ($jmp* 84))
(   23 ($get/val 'ΓεnΣym-3))
(   25 ($push/val :tree))
(   27 ($=))
(   28 ($jf* 16))
(   31 ($get/val 'tree/reduce))
(   33 ($get/val 'l))
(   35 ($get/val 'f))
(   37 ($get/val ))
(   39 ($apply 3))
(   41 ($jmp* 63))
(   44 ($get/val 'ΓεnΣym-3))
(   46 ($push/val :array))
(   48 ($=))
(   49 ($jf* 16))
(   52 ($get/val 'array/reduce))
(   54 ($get/val 'l))
(   56 ($get/val 'f))
(   58 ($get/val ))
(   60 ($apply 3))
(   62 ($jmp* 42))
(   65 ($get/val 'ΓεnΣym-3))
(   67 ($push/val :pair))
(   69 ($=))
(   70 ($jf* 16))
(   73 ($get/val 'list/reduce))
(   75 ($get/val 'l))
(   77 ($get/val 'f))
(   79 ($get/val ))
(   81 ($apply 3))
(   83 ($jmp* 21))
(   86 ($get/val 'throw))
(   88 ($get/val 'list))
(   90 ($push/val :type-error))
(   92 ($push/val You can only reduce collections))
(   94 ($get/val 'l))
(   96 ($get/val 'current-lambda))
(   98 ($apply 0))
(  100 ($apply 4))
(  102 ($apply 1))
(  104 ($closure/pop))
(  105 ($ret))