[racket-dev] Internal definitions in `define'
Now that I'm a whiny junior dev, does that mean I can do the +/-1 thing?
Because after reading Eli's argument - particularly the symmetry
arguments - I'm totally +1-ing his proposal.
This is one of the last places I find myself using the (let () ...)
idiom. (The others are `define-syntax-rule', `syntax-rules' and
`syntax-case', but I don't think those should change.)
Neil T
On 12/30/2011 01:36 AM, Eli Barzilay wrote:
> I was against it for similar reasons, but the question is whether
> there's a technical point that makes it a bad choice.
>
> As for making errors: I changed my mind when I though about the
> symmetry argument -- using the same argument, I'd expect to do the
> exact same kind of mistakes with functions, but I don't think that
> I've ever had one. Another factor is that if you think about possible
> mistakes, then I take it as a point in favor of doing this, since it
> reduces the number o ff parens as well as getting rid of the familiar
> (define foo (let () ...stuff...)) thing which should result in less
> mistakes.
>
>
> 8 hours ago, Robby Findler wrote:
>> I'm mildly against it, since it seems too easy to make parenthesis
>> errors that are very confusing (ie if you move a paren from the end
>> of one define to the end of a following define, the errors will get
>> strange).
>>
>> Robby
>>
>> On Thu, Dec 29, 2011 at 1:08 PM, Eli Barzilay<eli at barzilay.org> wrote:
>>> Does anyone know of a reason to not have an implicit `begin' in a
>>> plain definition, translated into an implicit (let () ...) in racket?
>>>
>>> When I see things like this:
>>>
>>> http://stackoverflow.com/questions/8667403
>>>
>>> I think that people expect the syntax of `define' to be uniform, so if
>>> you can switch these:
>>>
>>> (define (foo x) (+ x 1))
>>> (define foo (+ 8 1))
>>>
>>> then the expectation is for the same to work when there are multiple
>>> expressions.
>>>
>>> --
>>> ((lambda (x) (x x)) (lambda (x) (x x))) Eli Barzilay:
>>> http://barzilay.org/ Maze is Life!
>>> _________________________
>>> Racket Developers list:
>>> http://lists.racket-lang.org/dev
>