Paul McJones has a large collection of old Lisp manuals, which shed a lot of light on historical questions like how unary typep
got its irregular name. The earliest reference I've found is in a 1973 Maclisp manual, which describes it thus, immediately after the other type predicates:
typep
SUBR 1 argtypep
is a general type-predicate. It returns an atomic symbol describing the type of its argument, chosen from the list(fixnum flonum bignum list symbol string random)
symbol
means atomic symbol.Random
is for all types that don't fit in any other category.
A “general type-predicate”? This wording suggests typep
got its name because it was seen as a generalization of the regular type predicates. This makes sense: as Maclisp acquired an increasingly unwieldy number of type predicates, its maintainers would want to merge them into one operation, and would probably think of that operation as “a general type-predicate”, even though it's not actually a predicate.
(That random
type is probably just an implementation detail showing through, but it's still adorable. Rudimentary type systems are to languages what tiny clumsy paws are to kittens.)
Makes sense.
ReplyDeleteBTW, your information-delivering user interface has a bug: "1 comments" on the front page.
"1 comments" is a bug in Blogger, and affects everyone, so I imagine it'll be fixed sooner or later. (Although they haven't fixed the annoying lack of PRE and CODE and BLOCKQUOTE in comments.)
ReplyDelete