range

end start step


Summary

Return a list containing values from START (inclusive) to END (exclusive) by STEP

Bytecode

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

(    0 ($get/val 'end))
(    2 ($jf* 7))
(    5 ($push/nil))
(    6 ($jmp* 20))
(    9 ($get/val 'throw))
(   11 ($get/val 'list))
(   13 ($push/val :arity-error))
(   15 ($push/val (range) needs at least a specific end))
(   17 ($push/nil))
(   18 ($get/val 'current-lambda))
(   20 ($apply 0))
(   22 ($apply 4))
(   24 ($apply 1))
(   26 ($drop))
(   27 ($get/val 'start))
(   29 ($jf* 7))
(   32 ($push/nil))
(   33 ($jmp* 7))
(   36 ($push/int/byte 0))
(   38 ($set/val 'start))
(   40 ($drop))
(   41 ($get/val 'step))
(   43 ($jf* 7))
(   46 ($push/nil))
(   47 ($jmp* 7))
(   50 ($push/int/byte 1))
(   52 ($set/val 'step))
(   54 ($drop))
(   55 ($get/val 'step))
(   57 ($push/val 0.0))
(   59 ($>=))
(   60 ($jf* 8))
(   63 ($get/val '<))
(   65 ($jmp* 5))
(   68 ($get/val '>))
(   70 ($det/val 'pred))
(   72 ($drop))
(   73 ($push/nil))
(   74 ($det/val 'ret))
(   76 ($drop))
(   77 ($push/nil))
(   78 ($jmp* 19))
(   81 ($drop))
(   82 ($get/val 'start))
(   84 ($get/val 'ret))
(   86 ($cons))
(   87 ($set/val 'ret))
(   89 ($drop))
(   90 ($get/val 'start))
(   92 ($get/val 'step))
(   94 ($add))
(   95 ($set/val 'start))
(   97 ($get/val 'pred))
(   99 ($get/val 'start))
(  101 ($get/val 'end))
(  103 ($apply 2))
(  105 ($jt* -24))
(  108 ($drop))
(  109 ($get/val 'nreverse))
(  111 ($get/val 'ret))
(  113 ($apply 1))
(  115 ($ret))