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? Michael Montague 26 Nov 2013 19:59 UTC

On 11/26/2013 11:52 AM, Kevin Wortman wrote:
>> The only use case for 'valid-sre?' mentioned so far is Peter's
>> interactive regular expression IDE. The C standard does not require the
>> -fsyntax-only option. These do not seem like compelling arguments for
>> including
>> 'valid-sre?'.
> There is a well-established Scheme idiom that every client-visible data
> type have a constructor, and a type predicate such as valid-sre? . In
> general user-created data types don't have explicit names in the source
> code, so the type predicate may stand for the type itself in
> documentation and comments. Speaking for myself, when learning about a
> new library the first thing I do is read about all the type predicates
> since they enumerate the relevant data structures and roughly how they
> interrelate.
>
> In terms of practicalities, sanity-checking predicates such as
> valid-sre? are helpful for error checking and interactive debugging.
> They are also necessary for specifying contracts on procedures. See e.g.
> http://docs.racket-lang.org/reference/contracts.html
> which depends upon every data type having a type predicate.
>
> Kevin Wortman
>

An <sre> is not a data type. It is a language. This is like having
'valid-syntax?' to check an expression before you call 'eval' with it.