Notice the distinct lack of an '=' button --- HP's calculators have been almost exclusively RPN-based. It's funny to watch other (newer) developers reactions when they ask to borrow the calculator that's usually on my desk (a 42S) and then give it back several minutes later, with a puzzled look on their faces.
"you've been stacked" -- HP calc owner Last year I finally read the whole manual (as a teen I only used the symbolic differentiator, most useful and magical to my brain at the time). Since I learned about Lisp, so RPN programming features appealed to me. I realized that: 1) RPN has lambda > means (lambda (...) (+ 2 ...)) 2) RPN has a short syntax for them a 2 + >> Yes, 1990 HP RPN had arrow notation out of the box. T…
The syntax is slightly different. What it should be is this
a > >>
The arrow introduces a binding form that captures the top n levels of the stack into n named local variables. (There's also a lower level implementation that forgoes the names in favor of a lookup-by-ordinal scheme that's a lot faster.)
The other notable difference from what you might expect is that the lexical environment is not captured:
Consider this function:
a > >> >>
What it returns is a function object that looks like this, except that 'a' is a local variable reference rather than the global variable reference it looks like:
>
Evaluating this results in an error, because while 'a' is represented as a local variable reference, the environment containing the local binding for 'a' is no longer available.