[LISPWORKS][Common Lisp HyperSpec (TM)] [Previous][Up][Next]



References: ROOM (p442)

Category: ADDITION

Edit history: 12-Sep-88, Version 1 by Pitman

Problem Description:

Passing no argument to ROOM is not equivalent to any argument which

can be passed. This makes data-flow from another function which wants

to call ROOM inconvenient. Rather than simply passing a value through,

the correct calling sequence must be selected as well. For example,

one might have to do something like




where (ROOM FLAG) would suffice


Specify that passing an argument of :DEFAULT is equivalent to passing

no argument to ROOM.

Test Case:

(ROOM ':DEFAULT) is functionally equivalent to (ROOM).


Minimal change needed to get around the stated problem.

Allows ROOM to be describable without reference to supplied-p


Current Practice:

Symbolics Genera defines ROOM using &REST and looks for NIL, (T), or (NIL).

[This reduces its ability to do compile-time number-of-argument checking.]

Some other implementations probably have a magic undocumented value

to avoid use of a SUPPLIED-P argument.

Cost to Implementors:

Probably it involves negligible resources to change this.

In most implementations, the resulting code would probably look better.

Cost to Users:

None. This change is upward compatible.

Cost of Non-Adoption:

The description of ROOM will look yucky in the emerging specification.

The source code for ROOM will look yucky.

[How's that for objective? -kmp]

Error checking in some implementations may be sub-optimal.


The description of ROOM in the now-being-written specification would

be less complicated.


This proposal would make a minor improvement in aesthetics.


This is obviously a low-priority issue, but would require such little

resources to fix that it seems worth doing.

Pitman supports this addition.

It's perhaps too bad that keywords like :SHORT, :MEDIUM, and :LONG

weren't chosen instead of T and NIL, since T and NIL have a bit of a

binary feel to them and it's hard to think of a good name for the

default case.

[Starting Points][Contents][Index][Symbols][Glossary][Issues]
Copyright 1996-2005, LispWorks Ltd. All rights reserved.