> # (de go ()
> # (server 8080 "!zappel") )
> and add
> (server 8080 "!zappel")
This means that this expressions is immediately executed, instead of
being defined as a function 'go', right? Why would you want to do this?
I think the problem is that the wiki article doesn't explicitly explain
_how_ to start this program. It assumes a general knowledge, about the
consensus how all such applications are started. If you check more
examples, you see that they are all started in a kind of uniform way,
calling 'main' and then 'go'.
Try to start the program as
$ ./pil misc/canvas.l -main -go +
See? First 'main' is executed, then 'go'.
In your case, you immediately execute 'server', before running 'main'.
So you get
> : !? (set *Plot (- *DY *DY/2 (setq *Value (rand -100 100))))
> NIL -- Protected symbol
because the global '*Plot' wants to be initialized in 'main'. It still
has the intial value 'NIL'.