[plt-scheme] (v4) wildcard not allowed in expression

From: YC (yinso.chen at gmail.com)
Date: Mon Jun 23 21:31:54 EDT 2008

I used to write _ in the expression as a shorthand to the head of the
pattern as follows:

Welcome to DrScheme, version 371 [3m].
Language: Pretty Big (includes MrEd and Advanced Student).
> (define-syntax (and2 stx)
  (syntax-case stx ()
    ((_ a b c d ...)
     #'(_ a (_ b c d ...))) ;;; works
    ((_ a b)
     #'(if a b #f))))
> (and2 #t #t #t)
#t
> (and2 #t #t #t #f)
#f

In v4 - the above causes the error of "_: wildcard not allowed as an
expression in (_ #t (_ #t #f))".   I noticed this error using emacs & v4 on
Linux.

I tried to replicate it using DrScheme (on Windows) and found that with the
Module language it will cause the same error, but if using legacy language
of Pretty Big, it appears to be behave the same as in 37x.


Welcome to DrScheme, version 4.0 [3m].
Language: Module; memory limit: 128 megabytes.
> (and2 #t #t #f) ;; throw error
. _: wildcard not allowed as an expression in: (_ #t (_ #t #f))

Welcome to DrScheme, version 4.0 [3m].
Language: Pretty Big (includes MrEd and Advanced Student); memory limit: 128
megabytes.
> (and #t #t #f) ;; works
#f



On Mon, Jun 23, 2008 at 5:44 PM, Jos Koot <jos.koot at telefonica.net> wrote:

>  May be you missed the fact that _ has become a wild-card.
> Jos
>
> ----- Original Message -----
>  *From:* Jos Koot <jos.koot at telefonica.net>
> *To:* YC <yinso.chen at gmail.com> ; pltscheme <plt-scheme at list.cs.brown.edu>
> *Sent:* Tuesday, June 24, 2008 2:39 AM
> *Subject:* Re: [plt-scheme] (v4) wildcard not allowed in expression
>
> It works for me though:
>
> #lang scheme
>
> (define-syntax x
>  (syntax-rules ()
>   ((_ 1 _) 'one)
>   ((_ _ 2) 'two)))
>
> (x 1 monkey) ; one
> (x monkey 2) ; two
>
> Welcome to DrScheme, version 4.0.0.1-svn16jun2008 [3m].
> Language: Module.
>
> Jos
>
> ----- Original Message -----
>  *From:* YC <yinso.chen at gmail.com>
> *To:* pltscheme <plt-scheme at list.cs.brown.edu>
> *Sent:* Tuesday, June 24, 2008 12:32 AM
> *Subject:* [plt-scheme] (v4) wildcard not allowed in expression
>
> Hi -
>
> It seems that in v4 `_` can no longer exist in the expression position for
> syntax-case, is there a reason for the change?
>
> Thanks,
> yc
>
>  ------------------------------
>
> _________________________________________________
>   For list-related administrative tasks:
>   http://list.cs.brown.edu/mailman/listinfo/plt-scheme
>
>  ------------------------------
>
> _________________________________________________
>   For list-related administrative tasks:
>   http://list.cs.brown.edu/mailman/listinfo/plt-scheme
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.racket-lang.org/users/archive/attachments/20080623/3467dba4/attachment.html>

Posted on the users mailing list.