||:@include: lib/rpn.nv |:: push $x to $y| :stacks: $y $x |:: pop from $x :stacks: $x $y| :item: $y |:: pop from $x? :stacks: $y $z| :seen: $y $z |:: pop from $x| :stack empty: $x :: reset stacks |:: reset stacks? :seen: $x $y| :stacks: $x $y |:: reset stacks| |:: $x for all $y :stack empty: $y| |:: $x for all $y?| :: pop from $y :: apply $x |:: $x all $y| :: $x for all $y |:: apply $x :stack empty: $y?| |:: apply $x :item: $y| :: $x $y |:: sum $x :@rpn data: $y| :total: $y |:: sum $x? :total: $y| :@rpn: ($x $y +) |:: sum $x?| :total: 0 ||:: push 10 to numbers :: push 20 to numbers :: push 30 to numbers :: sum all numbers