Skip to main content

You are not logged in. Your edit will be placed in a queue until it is peer reviewed.

We welcome edits that make the post easier to understand and more valuable for readers. Because community members review edits, please try to make the post substantially better than how you found it, for example, by fixing grammar or adding additional resources and hyperlinks.

6
  • 9
    "For example, the string terminator in C is the null pointer.", no, the string terminator in a C string is the character NUL, it just happens to share a numeric value with (most) NULL pointers (the integral value 0). Commented Apr 16, 2012 at 15:29
  • 1
    The null pointer in C doesn't have a numeric value. Casting a null pointer to an integer type yields some unspecified value (not necessarily 0), and a literal 0 is a null pointer constant, but pointers are not numbers. Commented Apr 16, 2012 at 19:33
  • As some answers note, Lisp is dynamically typed, and allows you to stick anything you want in the cdr cell -- but the resulting object is then known as an "improper list". This is arguably a philosophical distinction, but it has practical consequences, since an extra value must be handled differently from regular list elements. Commented Apr 16, 2012 at 22:36
  • 1
    Since nobody answered it and since I’m too lazy, I suspect the real reason is that it makes sense, mathematically: Peano’s axioms. Commented Apr 17, 2012 at 1:00
  • Nobody answered what? I mentioned the mathematical slant in my response 3 hours earlier. Every list has an empty list as its suffix, similarly to how every set has the empty set as subset, or every sequence has the empty sequence as a subsequence. And since Lisp lists (the data structure) are suffix-based, ... Commented Apr 17, 2012 at 21:31