[racket-dev] Square-bracket-sensitive macros in Scribble sandboxes

From: Robby Findler (robby at eecs.northwestern.edu)
Date: Fri Nov 23 17:03:20 EST 2012

That sounds crazy, man. How about #:keywords instead? If not, then I
think you're better off just going with identifiers.

Robby

On Fri, Nov 23, 2012 at 3:39 PM, Neil Toronto <neil.toronto at gmail.com> wrote:
> On 11/23/2012 01:47 PM, Neil Toronto wrote:
>>
>> On 11/22/2012 11:33 AM, Eli Barzilay wrote:
>>>
>>> Two days ago, Neil Toronto wrote:
>>>>
>>>> Anyway, it occurred to me that I need to provide a more robust way
>>>> to generate code for literal arrays anyway. Keywords are more easily
>>>> preserved by macros than syntax properties:
>>>
>>>
>>> Why not use vector syntax #(...) instead of [...]?
>>
>>
>> That is a fantastic idea. Thanks!
>>
>> (The problem I was having with head identifiers like `array-row' was
>> that they got in the way when I was reading the array. Vector syntax
>> solves that neatly.)
>
>
> I've thought about it more and come up with a weird case:
>
>   (array #((list 1 2)))
>
> Should this array contain '(1 2) or '(list 1 2)?
>
> I'm not keen on the idea of the `array' macro only being useful for quoted
> datums, especially since it's not a reader macro. But if the above array
> contained '(1 2), that would be inconsistent with #((list 1 2)), which
> contains '(list 1 2):
>
>   > (vector-ref #((list 1 2)) 0)
>   '(list 1 2)
>
> I've considered having `array' implicitly quote its contents, so
>
>   (array ((list 1 2)))
>
> contains '(list 1 2), but
>
>   (array (,(list 1 2)))
>
> contains '(1 2).
>
> That might actually work the way I want it to. Do you see any problems with
> it?
>
>
> Neil ⊥
>
> _________________________
>  Racket Developers list:
>  http://lists.racket-lang.org/dev


Posted on the dev mailing list.