[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: pretty-lambdas



Incidentally, it's (map prn list) in Arc.  Since a great
proportion of print statements want to put a newline on
the end, we define a separate operator for it.


--Guy Steele - Sun Microsystems Labs wrote:
> 
>    From: kragen@pobox.com (Kragen Sitaker)
>    To: ll1-discuss@ai.mit.edu
>    Subject: Re: pretty-lambdas
>    Date: Thu, 28 Nov 2002 03:13:27 -0500 (EST)
>    
>    Luke Gorrie writes:
>    > I just want to mention a simple and good-enough-for-me solution to the
>    > "lambda is too many characters" problem: have Emacs "fontify" the
>    > string "lambda" as a lambda character. Then it uses less screen space
>    > even than 'fn'.
>    
>    Thank you very much for forwarding this tidbit; it delights me.
>    
>    > You need to have an appropriate font installed - more on that in the
>    > usenet thread that comes up first on a search for "pretty lambda" at
>    > groups.google.com. I don't know if this works on Emacsen other than
>    > GNU version 21.
>    
>    It doesn't work in "21.4 (patch 6) "Common Lisp" XEmacs Lucid", but it
>    does indeed work in GNU Emacs 21.  (My Greek font looks hideous,
>    though.)
>    
>    I still think (\ (x) (format t "~A~%" x)) takes too much space to
>    remove the need for macros like 'dolist'.  Compare:
>    
>    (dolist (x list) (format t "~A~%" x))
>    (mapcar (lambda (x) (format t "~A~%" x)) list)  ; too verbose
>    (mapcar (\ (x) (format t "~A~%" x)) list)       ; still too verbose
>    (mapcar {format t "~A~%" #1} list )    ; Mathematica's lambda syntax
>    mapcar (format t "~A~%") list          ; in almost-ML
> 
> Or, in Connection Machine Lisp:
> 
>    @(format t "~A~%" !list)
> 
> (Which only helps with this particular example, but mapcar/dolist
> is a pretty common operation.  Think of @ and ! as being like
> ` and , syntactically; @ means roughly "do this a lot" and ! means
> "except here; this is a list; use its elements, once each".
> Actually CM-Lisp used alpha and center-dot characters, but this
> gives you the idea.)
> 
> --Guy
>