Re: Logical equivalence of simple and complex types under the relational model?

From: Rene de Visser <Rene_de_Visser_at_hotmail.com>
Date: Wed, 1 Dec 2004 21:12:14 +0100
Message-ID: <col8jn$rmq$01$1_at_news.t-online.com>


"Neo" <neo55592_at_hotmail.com> schrieb im Newsbeitrag news:4b45d3ad.0412011004.5cbf31bf_at_posting.google.com...
>> In common lisp the ultimate type is 't' (short for true)
>> which all values are a members of.
>
> Does lisp have NULLs? Is it considered a value? How do lisp programs
> persist their data?
Common lisp by default is not a relational programming language, so you have to be carefull with the question, does lisp have NULL's.

It does have have a value nil, but in lisp nil is not a member of every type, in fact it is only a member of a few types, like "list".

So in short lisp does not have NULL's.

The declarative relation programming language AP5 can be loaded into the common lisp enviroment, but it does not support NULL's either. Nor have a seen any need for them. I view NULL's as a performance hack as binary relations are sometimes too expensive either for the database engine, or in some programming langauges where using many relations is unwieldy.

Unfortunately, like most programming languages today Lisp does not directly support persistance. However there are a number of libraries to support persistance (one even supports transparent persistance at package level).

In AP5 persistance is supported by writing the transaction log to disk. i.e. it is an in memory active database.

Otherwise in common lisp you handle persistance as in other programming languages, but either using database backed objects. i..e. an object relational mapping, or by doing it by hand with an SQL/DB connect library.

Rene. Received on Wed Dec 01 2004 - 21:12:14 CET

Original text of this message