[racket-dev] Oversight in type for path-string?
That's true, which is why it has to have a more complex filter than
you'd expect. But if a value isn't `path-string?', then it is
definitely not a `Path', and if it *is* `path-string?' then it's
either a `String' or a `Path'. So we can express an approximation of
it's behavior in the type.
On Fri, Mar 23, 2012 at 12:09 PM, Eric Dobson <eric.n.dobson at gmail.com> wrote:
> Actually I don't think this is an over sight. The null string is a String.
> And Path-String is Path U String, but (path-string? (string #\null)) => #f.
>
> Sent from a mobile device.
>
> On Mar 21, 2012 5:14 PM, "John Clements" <clements at brinckerhoff.org> wrote:
>>
>>
>> On Mar 21, 2012, at 3:20 PM, Sam Tobin-Hochstadt wrote:
>>
>> > On Wed, Mar 21, 2012 at 5:36 PM, John Clements
>> > <clements at brinckerhoff.org> wrote:
>> >> It looks like 'path-string?' is not labeled as a discriminator type.
>> >>
>> >>> path-string?
>> >> - : (Any -> Boolean)
>> >> #<procedure:path-string?>
>> >>>
>> >>
>> >> Is this just an oversight?
>> >
>> > Yes, that's just an oversight, although it's slightly more complicated
>> > than you'd think (because `(path-string? (string #\null))' is #f).
>>
>> Well, I just made do with (define-predicate ps? Path-String?), so this
>> certainly isn't a major problem.
>>
>> John
>>
>>
>> _________________________
>> Racket Developers list:
>> http://lists.racket-lang.org/dev
>>
>
--
sam th
samth at ccs.neu.edu