[racket-dev] Regular expression types [was Re: [racket-bug] all/14455: wrong type for hash]

From: Matthias Felleisen (matthias at ccs.neu.edu)
Date: Sun Apr 20 18:08:47 EDT 2014

Sorry guys, I had something different in mind. 


When I ask people to port my typical 'Hell' code, I tend to 
suggest that all XML-related code should stay in Untyped. In 
most cases this kind of S-expression manipulation is hairy
from an ordinary TR pov but has a simple interface to the 
Typed world. It really is a case where typed-untyped cooperation
shines. 

But eventually such pieces of code should/could be typed too. 
For those cases, the XML type systems that Sam mentioned are
ideal and one day we may wish to develop a TR+XML (Xduce?) 
combination. 







On Apr 20, 2014, at 3:06 PM, Eric Dobson wrote:

> Asumu has a rough draft of a commit that would allow this to work, I
> don't know the current status though.
> 
> https://github.com/plt/racket/pull/564
> 
> I was thinking about the problem and I think our current union types
> and recursive types covers a lot of ground.
> 
> For example as one user wanted to do, exactly one vector and bunch of
> numbers: (Rec T (U (Cons (Vectorof Real) (Listof Real)) (Cons Real
> T))).
> 
> 
> On Sun, Apr 20, 2014 at 11:38 AM, Matthias Felleisen
> <matthias at ccs.neu.edu> wrote:
>> 
>> This might be one of those areas where we could 'generalize' gradual typing.
>> 
>> 
>> On Apr 19, 2014, at 7:37 PM, Sam Tobin-Hochstadt wrote:
>> 
>>> On Sat, Apr 19, 2014 at 7:24 PM, Neil Toronto <neil.toronto at gmail.com> wrote:
>>>> Are there type systems that can? It seems like you could specify this type
>>>> and similar ones using regular expressions.
>>> 
>>> There is lots of work on types for XML specification that can handle
>>> this sort of thing, I believe, but not specifically in the context of
>>> function arguments.
>>> 
>>> Note that TR can handle alternating types just fine in lists, for
>>> example -- it's just that the function argument sequence is different.
>>> 
>>> Sam
>>> _________________________
>>> Racket Developers list:
>>> http://lists.racket-lang.org/dev
>> 
>> 
>> _________________________
>>  Racket Developers list:
>>  http://lists.racket-lang.org/dev



Posted on the dev mailing list.