I am trying to understand this example from the reference:
(prog1 # Parallel background calculation of square numbers (mapcan '((N)
(later (cons) (* N N))) (1 2 3 4)) (wait NIL (full @)) )
Could you please explain how it works, because it has many interrelated pieces:
cons,mapcan, wait that I thought I understood individually but still I do not
understand the example.
But it is a very practical example, so I would like to understand it fully.
Also, what is the role of prog1. Does it control what is passed to the wait?
Another confusing thing is the "@". How does one find which of the previous
functions updated the @, and which did not. I know that control functions
generally update the @, but still it is difficult to read the above example and
decide where the @ is being generated (perhaps only for a newcomer like me).