tree/merge

a b


Summary

Merge two trees together, if a key is contained in both trees the on in B gets priority

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 'b))
(    2 ($jf* 7))
(    5 ($push/nil))
(    6 ($jmp* 23))
(    9 ($get/val 'a))
(   11 ($jf* 12))
(   14 ($get/val 'tree/dup))
(   16 ($get/val 'a))
(   18 ($apply 1))
(   20 ($jmp* 8))
(   23 ($get/val 'tree/new))
(   25 ($push/nil))
(   26 ($apply 1))
(   28 ($ret))
(   29 ($drop))
(   30 ($get/val 'a))
(   32 ($jf* 7))
(   35 ($push/nil))
(   36 ($jmp* 10))
(   39 ($get/val 'tree/dup))
(   41 ($get/val 'b))
(   43 ($apply 1))
(   45 ($ret))
(   46 ($drop))
(   47 ($get/val 'tree/dup))
(   49 ($get/val 'a))
(   51 ($apply 1))
(   53 ($det/val 'ret))
(   55 ($drop))
(   56 ($let))
(   57 ($get/val 'tree/keys))
(   59 ($get/val 'b))
(   61 ($apply 1))
(   63 ($det/val 'ΓεnΣym-3))
(   65 ($drop))
(   66 ($push/nil))
(   67 ($jmp* 106))
(   70 ($drop))
(   71 ($push/val :pair))
(   73 ($get/val 'type-of))
(   75 ($get/val 'ΓεnΣym-3))
(   77 ($apply 1))
(   79 ($=))
(   80 ($jf* 7))
(   83 ($push/nil))
(   84 ($jmp* 25))
(   87 ($get/val 'throw))
(   89 ($get/val 'list))
(   91 ($push/val :type-error))
(   93 ($push/val Improper list detected, please provide a proper list instead))
(   95 ($get/val 'tree/keys))
(   97 ($get/val 'b))
(   99 ($apply 1))
(  101 ($get/val 'current-lambda))
(  103 ($apply 0))
(  105 ($apply 4))
(  107 ($apply 1))
(  109 ($drop))
(  110 ($get/val 'type-of))
(  112 ($get/val 'ΓεnΣym-3))
(  114 ($apply 1))
(  116 ($push/val :pair))
(  118 ($=))
(  119 ($jf* 7))
(  122 ($push/nil))
(  123 ($jmp* 21))
(  126 ($get/val 'throw))
(  128 ($get/val 'list))
(  130 ($push/val :type-error))
(  132 ($push/val Expected a value of type :pair))
(  134 ($get/val 'ΓεnΣym-3))
(  136 ($get/val 'current-lambda))
(  138 ($apply 0))
(  140 ($apply 4))
(  142 ($apply 1))
(  144 ($drop))
(  145 ($get/val 'ΓεnΣym-3))
(  147 ($car))
(  148 ($det/val 'k))
(  150 ($drop))
(  151 ($get/val 'tree/set!))
(  153 ($get/val 'ret))
(  155 ($get/val 'k))
(  157 ($get/val 'tree/ref))
(  159 ($get/val 'b))
(  161 ($get/val 'k))
(  163 ($apply 2))
(  165 ($apply 3))
(  167 ($drop))
(  168 ($get/val 'ΓεnΣym-3))
(  170 ($cdr))
(  171 ($set/val 'ΓεnΣym-3))
(  173 ($get/val 'ΓεnΣym-3))
(  175 ($jt* -105))
(  178 ($drop))
(  179 ($get/val 'ret))
(  181 ($closure/pop))
(  182 ($ret))