Path: eternal-september.org!news.eternal-september.org!feeder3.eternal-september.org!fu-berlin.de!uni-berlin.de!not-for-mail From: ram@zedat.fu-berlin.de (Stefan Ram) Newsgroups: comp.lang.lisp Subject: Re: NIL cons cell Date: 27 Jan 2024 14:49:19 GMT Organization: Stefan Ram Lines: 22 Expires: 1 Dec 2024 11:59:58 GMT Message-ID: References: <8734uj0x2m.fsf@brilhante.top> <87y1cazz9d.fsf@brilhante.top> <7w7cjuq2mk.fsf@junk.nocrew.org> Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Trace: news.uni-berlin.de 3ojyyaKfpfBYuFPncjgjxg+DF4yBfAAr63ss2CSjxIUslW Cancel-Lock: sha1:bytCnVFlzKrSV1wvbaQQYFaaQR4= sha256:RXqyiPH8PaATJmF1mVA9/fPcsdqi7kr8s7Sm+ik6NCw= X-Copyright: (C) Copyright 2024 Stefan Ram. All rights reserved. Distribution through any means other than regular usenet channels is forbidden. It is forbidden to publish this article in the Web, to change URIs of this article into links, and to transfer the body without this notice, but quotations of parts in other Usenet posts are allowed. X-No-Archive: Yes Archive: no X-No-Archive-Readme: "X-No-Archive" is set, because this prevents some services to mirror the article in the web. But the article may be kept on a Usenet archive server with only NNTP access. X-No-Html: yes Content-Language: en-US Accept-Language: de-DE-1901, en-US, it, fr-FR Lars Brinkhoff writes: >NIL is a symbol (and also an (empty) list). Its internal representation >is not specified by the standard. A symbol is an entity of the source-code model. A list is an entity of the runtime model. So, NIL "is" a symbol and a list (and also an atom), but on two different layers: In the source code it's a symbol, and the value of that symbol when it is being evaluated at runtime is the empty list. Models always contain entities which are not defined by being a kind of a more fundamental entity, because it is not possible to define every entity in that manner. But such entities are defined by their relations to other entities. Not defining the representation of entities gives Lisp the flexibility to be implemented in various ways on various machines. But it takes some time to get used to this kind of abstract thinking where abstract models replace specific internal representations.