On Wed, Nov 23, 2011 at 10:03 PM, <[email protected]> wrote:

> -[ Wed, Nov 23, 2011 at 08:28:56PM +0800, Nala Ginrut ]----
> > I think there's no such a given function in Guile to do this.
> > But you can make it in a easy way in Guile:
> > (catch 'system-error
> >     (lambda () (execlp "asdfasdf"))
> >       (lambda (k . e)
> >          (format #t "oh no~%~")))
> >
> > PS: Maybe you need #f instead of "format" according to your letter. ;-)
>
> It's my understanding that the OP does not want to actually run the
> program but merely knows either the file is in the PATH or not.
>
> I guess some-function would be something like :
>
> (use-modules (srfi srfi-1)) ; for any
> (define (in-path? f)
>        (let ((path          (string-split (getenv "PATH") #\:))
>                  (make-absolute (lambda (path) (string-append path "/"
> f))))
>                (any file-exists? (map make-absolute path))))
>
>
>
Well, I realized that Paul want this some-function to detect whether file
can be executed.
[quote] My question is then, *is* there a way to determine if a string is
executable? (And if so, how? :-) .[/quote]
I confess that I didn't quite understand this question.
So I guess there're two alternatives:
1. He needs some-function to detect each file in a path an return the
result or #f;
2. He needs some-function to handle the error if a certain string can not
be executed.

Reply via email to