regexp and valid-sre? Michael Montague (26 Nov 2013 03:34 UTC)
Re: regexp and valid-sre? Alex Shinn (26 Nov 2013 12:44 UTC)
Re: regexp and valid-sre? Peter Bex (26 Nov 2013 14:25 UTC)
Re: regexp and valid-sre? Michael Montague (26 Nov 2013 18:00 UTC)
Re: regexp and valid-sre? Peter Bex (26 Nov 2013 18:21 UTC)
Re: regexp and valid-sre? Michael Montague (26 Nov 2013 19:09 UTC)
Re: regexp and valid-sre? John Cowan (26 Nov 2013 18:24 UTC)
Re: regexp and valid-sre? Michael Montague (26 Nov 2013 19:17 UTC)
Re: regexp and valid-sre? Peter Bex (26 Nov 2013 19:23 UTC)
Re: regexp and valid-sre? Kevin Wortman (26 Nov 2013 19:52 UTC)
Re: regexp and valid-sre? Michael Montague (26 Nov 2013 19:59 UTC)
Re: regexp and valid-sre? Kevin Wortman (27 Nov 2013 23:33 UTC)
Re: regexp and valid-sre? John Cowan (27 Nov 2013 23:42 UTC)
Re: regexp and valid-sre? Arthur A. Gleckler (30 Nov 2013 14:55 UTC)
Re: regexp and valid-sre? Michael Montague (26 Nov 2013 18:02 UTC)
Re: regexp and valid-sre? John Cowan (26 Nov 2013 18:19 UTC)
Re: regexp and valid-sre? Michael Montague (26 Nov 2013 19:11 UTC)

Re: regexp and valid-sre? Peter Bex 26 Nov 2013 14:17 UTC

On Tue, Nov 26, 2013 at 09:44:27PM +0900, Alex Shinn wrote:
> On Tue, Nov 26, 2013 at 12:34 PM, Michael Montague <xxxxxx@gmail.com>wrote:
>
> > Why can the procedure 'regexp' be called with an already compiled <re>
> > which is just returned?

Convenience, I'd say.  That way you can create modules which have an
interface that accepts either SREs or regexp objects (like irregex does),
having it automatically compile SREs.

> > Why is the procedure 'valid-sre?' necessary? You could just call 'regexp'
> > and use 'guard' to check for any errors.
> >
>
> Indeed, in fact `valid-sre?' could be defined as:
>
>   (define (valid-sre? x)
>     (guard (else (exn #f)) (regexp x)))
>
> Whether you want to test in advance or catch errors
> after the fact is a matter of personal style.

And in some implementations compiling might be a lot more expensive than
simply checking, and if you're just providing on-the-fly feedback to a
user while building a regex dynamically (for example), it might be better
or more efficient to use valid-sre? instead of compiling.

I'm sure that in Irregex at least the DFA compilation is much more
expensive for complex regexes than a simple "is it valid"-type check
would be.

Cheers,
Peter
--
http://www.more-magic.net