[pro] Lisp 2's and function values.
Marco Antoniotti
antoniotti.marco at disco.unimib.it
Wed May 25 19:40:35 UTC 2011
Hi
I don't think there is a reasonable objection to forbid a form like
((returns-something-funcallable arg1 arg2 ... argN) 1 2 3 ... N)
from "working as expected". As Martin pointed out, if the return value of the form is a "macro" then this would have to be interpreted in the "regular" evaluation regime.
As per "extending" LET there have been a lot of proposals... IMHO a nice one is to go the LOOP way :)
(LETS [var <symbol> <form>]*
[fun (<name> <arglist> <body>)]*
[labels (<name> <arglist> <body>)]*
[values <list> <form>]*
IN
<body>)
Of course you can add some ways of extending the syntax by having something like
(def-lets-binding <tag> ...)
You get the idea....
Cheers
--
MA
On May 25, 2011, at 17:51 , Matthew Swank wrote:
> Alessio Stalla <alessiostalla at ...> writes:
>
>>
>> On Wed, May 25, 2011 at 4:45 PM, Matthew Swank
>> <akopa.gmane.poster at ...> wrote:
>>> Pascal Costanza <pc at ...> writes:
>>>
>>>>
>>>>
>>>> On 25 May 2011, at 04:51, Matthew D. Swank wrote:
>>>
>>>>> However, consider the following:
>>>>>
>>>>> ((returns-a-function) arg arg ...)
>>>>>
>>>>> Would it be reasonable to allow this as a legal form as well?
>>
>> While in principle I like such a thing, I think it doesn't play well
>> with Lisp-2 (or more specifically, with Common Lisp). If ((whatever)
>> ...) is a valid expression, then one would expect (let ((foo
>> (whatever))) (foo ...)) to be equivalent, but it's not. And you can't
>> use flet/labels for the same effect.
>
> Well, let bindings could be extended to use an operator to specify the namespace:
>
> (let (((function foo) (lambda (arg ...) ...))
> (bar (lambda (arg ...) ...)))
> (foo ...)
> (funcall bar ...))
>
>
> and flet/labels would transform into a generalized let binding.
>
> This would make the standard transformation of let -> function call a little
> problematic, however.
>
> I suppose at the bottom of all this is an implied primitive binding operator for
> operators: perhaps flambda!
>
> Matt
>
>
>
> _______________________________________________
> pro mailing list
> pro at common-lisp.net
> http://lists.common-lisp.net/cgi-bin/mailman/listinfo/pro
--
Marco Antoniotti, Associate Professor tel. +39 - 02 64 48 79 01
DISCo, Università Milano Bicocca U14 2043 http://bimib.disco.unimib.it
Viale Sarca 336
I-20126 Milan (MI) ITALY
Please note that I am not checking my Spam-box anymore.
Please do not forward this email without asking me first.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mailman.common-lisp.net/pipermail/pro/attachments/20110525/a969e033/attachment.html>
More information about the pro
mailing list