This is the mail archive of the
kawa@sources.redhat.com
mailing list for the Kawa project.
RE: Compiling procedures questions
- From: "Crystal, Mayer" <mayer dot crystal at gs dot com>
- To: 'Per Bothner' <per at bothner dot com>
- Cc: "'kawa at sources dot redhat dot com'" <kawa at sources dot redhat dot com>
- Date: Tue, 28 Sep 2004 15:17:24 -0400
- Subject: RE: Compiling procedures questions
Per, Dominique:
That was it. It is now happily compiling and running :). Thanks
for all your explanations and help.
Mayer
-----Original Message-----
From: Per Bothner [mailto:per@bothner.com]
Sent: Tuesday, September 28, 2004 3:14 PM
To: Crystal, Mayer
Cc: 'kawa@sources.redhat.com'
Subject: Re: Compiling procedures questions
Crystal, Mayer wrote:
>
> When I run the main of KawaTest the output of the println statement
> is:
>
> Procedure value = #<procedure proc1?>
>
> What I was trying to do though was to get the result as true or false.
It is. #<procedure proc1?> is a true value.
R5RS says:
library syntax: (or <test1> ...)
The <test> expressions are evaluated from left to right, and the value
of the first expression that evaluates to a true value (see section
6.3.1) is returned.
and:
The standard boolean objects for true and false are written as #t and
#f. What really matters, though, are the objects that the Scheme
conditional expressions (if, cond, and, or, do) treat as true or false.
The phrase ``a true value'' (or sometimes just ``true'') means any
object treated as true by the conditional expressions, and the phrase
``a false value'' (or ``false'') means any object treated as false by
the conditional expressions.
Of all the standard Scheme values, only #f counts as false in
conditional expressions. Except for #f, all standard Scheme values,
including #t, pairs, the empty list, symbols, numbers, strings, vectors,
and ***procedures***, count as true.
You probably meant:
private static final String TEST_RULE = "(or (proc1?) (or (proc2?)
(proc3?)))";
--
--Per Bothner
per@bothner.com http://per.bothner.com/