Hi Thorsten, > Funny how views differ - in the Clojure world "lazy evaluation" seems > to be a big feature ...
I don't say that "lazy evaluation" is a bad feature. It is in fact very powerful. But it assumes a completely different internal evaluation machinery. Basically, each function must run it its own thread and "pipe" its data to the recipient. But I doubt it is worth the effort. It introduces quite some overhead. At least it is against the PicoLisp philosophy to keep the programmer in control: You can always achieve the same effect as with lazy evaluation if you say explicitly what you want. In Jon's example, this would be using 'make' in a loop instead of the brute force 'list'. In the typical 'mapcar' example : (mapcar - (mapcar inc (1 2 3))) -> (-2 -3 -4) lazy evaluation would avoid creating a temporary list, but the same effect can be achieved with : (mapcar '((N) (- (inc N))) (1 2 3)) -> (-2 -3 -4) ♪♫ Alex -- UNSUBSCRIBE: mailto:[email protected]?subject=Unsubscribe
