Hi dean,
It's not clear what you're asking. Does this help explain it?
http://software-lab.de/doc/tut.html
--- from the page ---
Anonymous functions without the lambda keyword
There's no distinction between code and data in PicoLisp, quote will
do what you want (see also this FAQ entry).
: ((quote (X) (* X X)) 9)
-> 81
: (setq f '((X) (* X X))) # This is equivalent to (de f (X) (* X X))
-> ((X) (* X X))
: f
-> ((X) (* X X))
: (f 3)
-> 9
--- end from the page ---
And http://software-lab.de/doc/ref.html
"The most prominent read-macro in Lisp is the single quote character
"'", which expands to a call of the quote function. Note that the
single quote character is also printed instead of the full function
name."
---
In other words, quote is allowing you to define an anonymous function
equivalent to (function(x) { return x*x })(9) (in javascript for
example)
On Mon, Nov 21, 2016 at 3:37 PM, dean wrote:
> I could do with some help understanding step by step what's happening
> here...
>
> Intuitively I can see that 9 squared is 81 but I can't really see,
> precisely, what this was doing
>
> ((quote (X) (* X X)) 9)
> -> 81
>
> so I put it in a function in a file to trace it
>
> (de go ()
> ((quote (X) (* X X)) 9)
> )
>
> but it's not giving me the step by step explanation I was hoping for
>
> : (trace go)
> !? (method "X" C)
> (('((X) (* X X)) 9)) -- Symbol expected
> ?
>
> Any help to understand what's happening at each stage would be very much
> appreciated.
>
> Thank you in anticipation.
--
UNSUBSCRIBE: mailto:picolisp@software-lab.de?subject=Unsubscribe