[racket] future

From: Richard Cleis (rcleis at mac.com)
Date: Wed Aug 31 01:25:53 EDT 2011

On Aug 30, 2011, at 2:50 PM, Neil Toronto <neil.toronto at gmail.com> wrote:

> CTRL-\ might become your best friend, then. It inserts an honest-to-goodness lambda.

... but that triggers unicode. I like old fashioned ASCII files. :)

rac

> 
> I *never* write "lambda" anymore in Racket code.
> 
> Neil T
> 
> On 08/30/2011 09:45 AM, Richard Cleis wrote:
>> I want to be able to:
>> 
>> #lang racket/L ; sacrifice L in honor of profoundly useful lambda
>> 
>> rac
>> 
>> 
>> 
>> On Aug 29, 2011, at 3:36 PM, Greg Hendershott wrote:
>> 
>>>> it wouldn't be necessary to create all these duplicate forms to avoid
>>>> writing (lambda () ...) This would cut down on code, and also make the
>>>> language more consistent.
>>> 
>>> I think Noel has it exactly right.
>>> 
>>> The common concept is "thunk".
>>> 
>>> The desire is, how to say it more succinctly.
>>> 
>>> Surely there should be one way to say it more succinctly, which works
>>> with many forms?  As opposed to many forms each needing its variation
>>> to say the one thing more succinctly?
>>> 
>>> 
>>> So: How to say it more succinctly than (lambda () e)?  Or even the
>>> i-can-haz-unicode way, (λ () e)?
>>> 
>>> (thunk e) is a first approximation. But, "thunk" is jargon, and it's
>>> barely more succinct than (lambda () e).
>>> 
>>> So, how about any of these as the super succinct way:
>>> (() e)
>>> (\ e)
>>> (λ e)
>>> 
>>> ??
>>> 
>>> Actually I'm fine with (lambda () e) or (λ () e). I don't think a
>>> couple extra parens are horrible, or I'd be writing C# or
>>> cortex-fudge. And I don't think it's horrible for functions to be
>>> first-class, and to express "here's some stuff to do" as "here's a
>>> function".
>>> 
>>> 2011/8/29 Noel Welsh<noelwelsh at gmail.com>:
>>>> On Mon, Aug 29, 2011 at 8:05 PM, Eli Barzilay<eli at barzilay.org>  wrote:
>>>>> There's also the semi-popular syntax extension change, like {E ...}
>>>>> expanding to (λ () E ...), but that looks very confusing with
>>>>> something like (thread {(printf "foo\n")}) -- so maybe do that with
>>>>> the outer form: {thread (printf "foo\n")}.  Or maybe do that with a
>>>>> macro instead: (e thread (printf "foo\n")), which will probably go the
>>>>> way of `nested'.
>>>> 
>>>> Yeah, what about solving the problem of lambda's verbosity directly?
>>>> If fn or \ was shorthand for lambda, or
>>>> 
>>>> { a1 ... | expr ... }
>>>> 
>>>> expanded to
>>>> 
>>>> (lambda (a1 ...) expr ...)
>>>> 
>>>> it wouldn't be necessary to create all these duplicate forms to avoid
>>>> writing (lambda () ...) This would cut down on code, and also make the
>>>> language more consistent.
>>>> 
>>>> N.
>>>> 
>>>> _________________________________________________
>>>>  For list-related administrative tasks:
>>>>  http://lists.racket-lang.org/listinfo/users
>>> 
>>> _________________________________________________
>>>  For list-related administrative tasks:
>>>  http://lists.racket-lang.org/listinfo/users
>> 
>> 
>> _________________________________________________
>>   For list-related administrative tasks:
>>   http://lists.racket-lang.org/listinfo/users
> 
> _________________________________________________
> For list-related administrative tasks:
> http://lists.racket-lang.org/listinfo/users



Posted on the users mailing list.