Re: [racket-dev] Release for v6.0 is about to begin

2013-11-05 Thread WarGrey Gyoudmon Ju
Okay, I've extended the readtable.
At-exp is preferable, and I do use at-exps in other circumstances.
Thank you, Greg.


On Wed, Nov 6, 2013 at 5:40 AM, Greg Hendershott
wrote:

> Well, I think Ryan is talking about people who are coding a new
> feature that's nearly ready. Not soliciting ideas for last-minute
> ideas to try to rush into v6. Nice try, though. :)
>
> Having said that, have you tried using at-exps for this?
>
> I've only thought about this for a few minutes, and there are pros and
> cons, but:
>
> - - - - - - -
>
> #lang at-exp racket
> ;;^^
>
> ;; Don't like regexps in quotes?
> (regexp-match #px"^foo" "foo")
>
> ;; Do this instead:
> (regexp-match @pregexp{^foo} "foo")
>
> ;; OK, but:
> ;; 1. A bit verbose.
> ;; 2. Those aren't precompiled regexps, like with #px
> ;; 3. Also if the {} spans multiple lines, it needs to be converted
> ;; into just one string.
> ;; So:
>
> (define px (compose1 pregexp ~a))
> (define rx (compose1 regexp ~a))
>
> ;; Now you can write this:
> (regexp-match @px{^foo} "foo")
>
> ;; Ta da !!
>
> ;; You can include newlines without using \n
> (regexp-match @px{^foo
>   bar} "foo\nbar")
>
> ;; But bad news, you can't use \n anymore.
> ;; (regexp-match @px{^foo[\n]bar} "foo\nbar")
> ;; => regexp: illegal alphabetic escape
>
> ;; The other way is to @ quote:
> @~a{@#\newline}
> @~a{@"\n"}
> (regexp-match @px{^foo@"\n"bar} "foo\nbar")
>
> ;; OTOH, good news is that regexp backslashes can be used as-is -- no
> ;; need for the extra \
> (regexp-match @px{1\.0} "1.0")
>
> ;; p.s. How to escape @ in an at-exp? @"@"
> (regexp-match @rx{^foo@"@"bar\.com} "f...@bar.com")
>
>
> On Mon, Nov 4, 2013 at 8:40 PM, WarGrey Gyoudmon Ju
>  wrote:
> > Could you please make the regular expression syntax more elegant?
> > To replace the "" with // or any other character as its boundary.
> >
> > Here is the example:
> > #px/^\s*\/([^\/])\/\s*$/ === #px@^\s*/([^/])/\s*$@ ===
> > #px"^\\s*/([^/])/\\s*$"
> >
> > Thank you in advance.
> >
> >
> > On Tue, Nov 5, 2013 at 12:51 AM, Ryan Culpepper 
> wrote:
> >>
> >> The release process for v6.0 will begin in about a week.  If
> >> you have any new features that you want in and are relatively close
> >> to being done, now is a good time to do that.
> >> _
> >>  Racket Developers list:
> >>  http://lists.racket-lang.org/dev
> >
> >
> >
> > _
> >   Racket Developers list:
> >   http://lists.racket-lang.org/dev
> >
>
_
  Racket Developers list:
  http://lists.racket-lang.org/dev


Re: [racket-dev] Release for v6.0 is about to begin

2013-11-05 Thread Greg Hendershott
Well, I think Ryan is talking about people who are coding a new
feature that's nearly ready. Not soliciting ideas for last-minute
ideas to try to rush into v6. Nice try, though. :)

Having said that, have you tried using at-exps for this?

I've only thought about this for a few minutes, and there are pros and
cons, but:

- - - - - - -

#lang at-exp racket
;;^^

;; Don't like regexps in quotes?
(regexp-match #px"^foo" "foo")

;; Do this instead:
(regexp-match @pregexp{^foo} "foo")

;; OK, but:
;; 1. A bit verbose.
;; 2. Those aren't precompiled regexps, like with #px
;; 3. Also if the {} spans multiple lines, it needs to be converted
;; into just one string.
;; So:

(define px (compose1 pregexp ~a))
(define rx (compose1 regexp ~a))

;; Now you can write this:
(regexp-match @px{^foo} "foo")

;; Ta da !!

;; You can include newlines without using \n
(regexp-match @px{^foo
  bar} "foo\nbar")

;; But bad news, you can't use \n anymore.
;; (regexp-match @px{^foo[\n]bar} "foo\nbar")
;; => regexp: illegal alphabetic escape

;; The other way is to @ quote:
@~a{@#\newline}
@~a{@"\n"}
(regexp-match @px{^foo@"\n"bar} "foo\nbar")

;; OTOH, good news is that regexp backslashes can be used as-is -- no
;; need for the extra \
(regexp-match @px{1\.0} "1.0")

;; p.s. How to escape @ in an at-exp? @"@"
(regexp-match @rx{^foo@"@"bar\.com} "f...@bar.com")


On Mon, Nov 4, 2013 at 8:40 PM, WarGrey Gyoudmon Ju
 wrote:
> Could you please make the regular expression syntax more elegant?
> To replace the "" with // or any other character as its boundary.
>
> Here is the example:
> #px/^\s*\/([^\/])\/\s*$/ === #px@^\s*/([^/])/\s*$@ ===
> #px"^\\s*/([^/])/\\s*$"
>
> Thank you in advance.
>
>
> On Tue, Nov 5, 2013 at 12:51 AM, Ryan Culpepper  wrote:
>>
>> The release process for v6.0 will begin in about a week.  If
>> you have any new features that you want in and are relatively close
>> to being done, now is a good time to do that.
>> _
>>  Racket Developers list:
>>  http://lists.racket-lang.org/dev
>
>
>
> _
>   Racket Developers list:
>   http://lists.racket-lang.org/dev
>
_
  Racket Developers list:
  http://lists.racket-lang.org/dev


Re: [racket-dev] Release for v6.0 is about to begin

2013-11-04 Thread WarGrey Gyoudmon Ju
Could you please make the regular expression syntax more elegant?
To replace the "" with // or any other character as its boundary.

Here is the example:
#px/^\s*\/([^\/])\/\s*$/ === #px@^\s*/([^/])/\s*$@ ===
#px"^\\s*/([^/])/\\s*$"

Thank you in advance.


On Tue, Nov 5, 2013 at 12:51 AM, Ryan Culpepper  wrote:

> The release process for v6.0 will begin in about a week.  If
> you have any new features that you want in and are relatively close
> to being done, now is a good time to do that.
> _
>  Racket Developers list:
>  http://lists.racket-lang.org/dev
>
_
  Racket Developers list:
  http://lists.racket-lang.org/dev


[racket-dev] Release for v6.0 is about to begin

2013-11-04 Thread Ryan Culpepper

The release process for v6.0 will begin in about a week.  If
you have any new features that you want in and are relatively close
to being done, now is a good time to do that.
_
 Racket Developers list:
 http://lists.racket-lang.org/dev