Sorry-- this was already unchangable 5 years ago, nevermind today.

Robby

On Tue, May 1, 2012 at 6:56 PM, Jon Rafkind <rafk...@cs.utah.edu> wrote:
> Just in case it was unclear I was hoping people would explicitly adorn 
> pattern variables if they want to match the same term.
>
> (simple integer_1 integer_1)
>
> But if (simple integer integer) to match the same term twice is a heavily 
> used form then so be it..
>
> On 05/01/2012 05:52 PM, Robby Findler wrote:
>> This is heavily relied on.
>>
>> Robby
>>
>> On Tue, May 1, 2012 at 6:45 PM, Jon Rafkind <rafk...@cs.utah.edu> wrote:
>>> The default matching behavior of patterns in redex will try to match 
>>> duplicate pattern variables to the same term. Thus
>>>
>>> #lang racket
>>>
>>> (require redex)
>>>
>>> (define-language Z [x integer])
>>> (define-metafunction Z
>>>  simple : integer integer -> integer
>>>  [(simple integer integer) 1])
>>>
>>> (term (simple 1 2))
>>>> simple: no clauses matched for (simple 1 2)
>>> Won't match because the pattern (simple integer integer) will match the 
>>> first `integer' to 1, and wants to the second reference to `integer' to the 
>>> same thing. To get it to work I need to adorn the pattern variables with _1 
>>> and _2 to make them unique.
>>>
>>> (define-language Z [x integer])
>>> (define-metafunction Z
>>>  simple : integer integer -> integer
>>>  [(simple integer_1 integer_2) 1])
>>>
>>> I would prefer (if possible) if the default behavior treated unadorned 
>>> pattern variables as fresh so that I don't have to remember to attach a 
>>> suffix. I guess this might break existing programs but I can't imagine 
>>> anyone really relies on this behavior (unadorned variables matching 
>>> duplicate terms).
>>> ____________________
>>>  Racket Users list:
>>>  http://lists.racket-lang.org/users
>

____________________
  Racket Users list:
  http://lists.racket-lang.org/users

Reply via email to