When applied to a nil stack, current Ripple evaluators simply terminate
without passing data. While passing a nil stack seems pointless in most
cases, there are in fact times when it is useful, and when the passing of
the nil stack is the most correct and intuitive behavior. For instance,
this program:
@define s classLabel:
s rdf:type >>
(owl:Class equal >>) pop scrap ifte >>
s rdfs:label >> .
The expected behavior is that the type resource is popped off of the stack
(at which point the stack is nil), after which s is pushed back onto the
stack. As it is, the program terminates without yielding a result.
Original link: http://code.google.com/p/ripple/issues/detail?id=27