Newsgroups: comp.lang.scheme
Path: cantaloupe.srv.cs.cmu.edu!das-news2.harvard.edu!news2.near.net!howland.reston.ans.net!news.sprintlink.net!pipex!uunet!news.cygnus.com!nntp!lord
From: lord@x1.cygnus.com (Tom Lord)
Subject: three R4RS/IEEE questions
Message-ID: <LORD.94Dec7141015@x1.cygnus.com>
Sender: news@cygnus.com
Nntp-Posting-Host: x1.cygnus.com
Organization: Cygnus Support
Date: Wed, 7 Dec 1994 22:10:15 GMT
Lines: 43


The R4RS is careful so say this about false objects:


	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.


I interpret this to mean that in an interpreter which supports all of
the standard values, additional values beyond those are permitted to
count as false.  Only standard values which are not #f are prohibitted
from counting as false.

Elsewhere, the disjointedness of types is presented this way:

	No object satisfies more than one of the following
	predicates:

	boolean?	pair?
	symbol?		number?
	char?		string?
	vector?		procedure?

I interpret this to mean that even non-standard objects are prohibited
from satisfying more than one of these predicates.

I have three questions:

	- Are these interpretations also consistant with the IEEE standard?

	- Are there any restrictions (R4RS or IEEE) that would prevent
	  a non-standard object from satisfying the predicate NULL?

	- Are there any restrictions (R4RS or IEEE) that prevent a
	  non-standard value from being eq? to a standard value?

--
----

If you would like to volunteer to help with the GNU extension language
project, please write to lord@gnu.ai.mit.edu.
