bug#59221: (file-exists? #f) raises an exception

Joshua Branson via "Bug reports for GUILE, GNU's Ubiquitous Extension Language" <[email protected]>
Newsgroups gmane.lisp.guile.bugs
Message-ID <[email protected]>
Jean Abou Samra <[email protected]> writes:

> Le 13/11/2022 à 07:44, [email protected] a écrit :
>> You both have a point. Checking for existing predicates with a
>> longer tradition, though:
>>
>>    scheme@(guile-user)> (exact? "mumble")
>>    ice-9/boot-9.scm:1685:16: In procedure raise-exception:
>>    In procedure exact?: Wrong type argument in position 1: "mumble"
>>
>> seems to support Jean Abu's position that it is more customary to
>> raise for an argument of the wrong type. Also `string<?', etc.
>> do this. That seems to be the consensus.
>
>
> Yes. I am not sure where the people in the Guile IRC got the idea
> that a predicate shouldn't raise an exception. Lots of predicates in
> Guile do, and that is very helpful because it catches mistakes.
>
>
>> Naively, it just feel like it (file-exists? #f) should return #f.
>
>
> Why?
>

hmmm, somehow I missed your response.  I guess for my simple use case,
it just made more sense.  I am defining a service for guix that asks for
user input.  If the user doesn't type in input, the default value was
#f.

That's fine.  Thanks for all's replies.  I'll go ahead and close this
bug!

Thanks!

>
>
>> Would there be an objection to changing the definition of file-exists to
>>
>> (define (file-exists file)
>>      (and (string? file)
>>           (old-file-exists-code file)))
>
>
>
> It would be inconsistent with the rest of Guile and I don't
> see what it would help with.
>
> Best,
> Jean
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.