[racket-dev] Fancy application/automatic anonymous functions

From: Robby Findler (robby at eecs.northwestern.edu)
Date: Tue May 17 15:24:19 EDT 2011

But then this:

(map (+ 1 _) (list 1 2 3))

would turn into

(lambda (_) (map (+ 1 _) (list 1 2 3))

no?

Robby


On Tue, May 17, 2011 at 2:22 PM, John Clements
<clements at brinckerhoff.org> wrote:
>
> On May 17, 2011, at 12:21 PM, Robby Findler wrote:
>
>> What is the rule for where the lambda goes?
>
> Looks to me like it goes at the outside.  So the macro plows through the terms and when it gets to the bottom, it decides either to wrap the whole thing in a lambda or not.
>
> John
>
>>
>> Robby
>>
>> On Tue, May 17, 2011 at 2:14 PM, Sam Tobin-Hochstadt <samth at ccs.neu.edu> wrote:
>>> Scala has the nice feature that if you write something like this:
>>>  lst.map(_ - 1)
>>> It automatically rewrites to a function like this:
>>>  lst.map(x => x - 1)
>>> This makes writing some higher-order functions much easier.
>>>
>>> Of course, it's easy to make this using a macro and `#%app'.  You can
>>> see the result here:
>>>  github.com/samth/fancy-app
>>>
>>> I'm planning to put this in `unstable/app', and if there's interest
>>> I'll think about incorporating it into the default `#%app', after some
>>> experience with it.
>>>
>>> Lots of people have written similar things (`cut' in SRFI 26, Jay's
>>> `super-cut', etc), but I'd like to move towards using it implicitly.
>>> --
>>> sam th
>>> samth at ccs.neu.edu
>>> _________________________________________________
>>>  For list-related administrative tasks:
>>>  http://lists.racket-lang.org/listinfo/dev
>>>
>>
>> _________________________________________________
>>  For list-related administrative tasks:
>>  http://lists.racket-lang.org/listinfo/dev
>
>



Posted on the dev mailing list.