[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: regexp and valid-sre?



> 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