Path: utzoo!utgpu!jarvis.csri.toronto.edu!mailrus!tut.cis.ohio-state.edu!unmvax!pprg.unm.edu!hc!lll-winken!uunet!mcvax!hp4nl!botter!star.cs.vu.nl!biep From: biep@cs.vu.nl (J A Biep Durieux) Newsgroups: comp.lang.lisp Subject: Re: Overloading of NIL (as empty list and logical falsity) Message-ID: <2220@ski.cs.vu.nl> Date: 28 Mar 89 17:31:36 GMT References: <8903222013.AA00234@zooks.ads.com> Reply-To: biep@cs.vu.nl (J A Biep Durieux) Organization: VU Informatica, Amsterdam Lines: 21 >If () was distinct to NIL (= FALSE) > then my little unifier would be a lot clearer to read. But why does your empty list have to be NIL? let your bindings-list end in T, and the problem is gone: NIL --> unification failed T --> unification succeeded with empty set of bindings (--- . T) --> unification succeeded with given set of bindings If your programs test for end-of-list with (ATOM &) instead of with (NULL &), then everything should work OK. After all, ending lists with the symbol for FALSE is only a choice, not something imposed upon you by the language (except by the print- functions, maybe..) -- Biep. (biep@cs.vu.nl via mcvax) Who am I to doubt the existence of God? I am only a simple man, I already have trouble enough doubting the existence of my neighbour!