kip

kip

ex_cldr Core Team

On 'nil`, `[]` and the truth - a historic perspective

The Evolution of Lisp is a fascinating read if you like languages (its a paper I picked up, I think, from the members of the Elixir slack).

Page 37 (its a PDF) has a great overview of the early discussions on nil, [] and true/false. Worth a read to understand some of the design decisions in many languages. Short quote:

Almost since the beginning􏰌 Lisp has used the symbol nil as the distinguished object that indi􏰍cates the end of a list 􏰉and which is therefore itself the empty list􏰊􏰛. This same object also serves as the false value returned by predicates.􏰎 McCarthy has commented that these decisions were made 􏰟rather lightheartedly􏰆 and 􏰟later proved unfortunate.􏰎􏰆

Furthermore􏰌 the earliest implementations established a tradition of using the zero address as the representation of NIL􏰛 McCarthy also commented that 􏰟besides encouraging pornographic programming􏰌 giving a special interpretation to the address has caused difficulties in all subsequent implementations􏰆 􏰞[McCarthy􏰌 􏰑􏰙􏰗􏰘􏰠􏰎1978]

Also interesting is a paper from 1989 called Prolog vs Lisp which is interesting for at least two reasons:

  • Prolog was used for the first implementation of Erlang and the lispish characteristics continue through to Elixir today as well

  • The debate about benchmarking and performance is hardly a new one - and this paper does a good job of summarising the broader challenges of language selection

Most Liked

l00ker

l00ker

Thanks for the links to the papers. I always find these historical things quite interesting and fascinating. :+1:

Where Next?

Popular in Discussions Top

arcanemachine
https://nitter.net/josevalim/status/1744395345872683471 https://twitter.com/josevalim/status/1744395345872683471
New
Rustixir
Hi everyone, im working on find best language/framework/system for high concurrency, high performance and stable performance after wor...
New
pillaiindu
In django there is a cache framework backed by memcached. Rails also puts a lot of emphasis on caching, and even the idea of russian-doll...
New
AngeloChecked
What learn first? Rust or Elixir Hi Elixir community! I’m here because i want learn a new language. I’m a junior developer and mainly i ...
New
Fl4m3Ph03n1x
Background This question comes mainly from my ignorance. Today is Black Friday, one of my favorite days of the year to buy books. One boo...
New
Crowdhailer
I’ve been hearing much about the new formatter and it’s something I have been keen to try. I find examples buy far the most illuminating...
248 19327 150
New
IVR
Hi all, I’ve seen a number of related threads in the past, but I’d still be very curious to hear an up-to-date opinion on this topic. I...
New
New
sergio
Kind of like when jquery came out, it was super necessary. Existing drag and drop libraries have a bunch of baggage to support old browse...
New
paulanthonywilson
I like Umbrella projects and pretty much always use them for personal Elixir stuff, especially Nerves things. But I don’t think this is ...
New

Other popular topics Top

aadeshere1
I have a another noob question about loop. Since elixir is immutable, while loop is not directly possible. total = 10 while total != 0 ...
New
vertexbuffer
Hello, can anybody help here..? I have a list of players and I what to delete an element, but every for loop the list is reverting to ori...
New
AstonJ
Posting this to see if we can make things easier for people to get into Neovim. If you use Neovim and have a favourite distro please let ...
New
jononomo
I am trying to figure out how Mix knows whether the environment is test, dev, or prod – where is this set? Thanks.
New
pmjoe
I have a relationship of love and hate with Elixir. Lots of things are just absolutely right, but there are some things that are kind of ...
New
Fl4m3Ph03n1x
About me? ( if you have nothing better to do than reading about some random guy in the internet :stuck_out_tongue: ) Hello all, this is ...
New
AngeloChecked
What learn first? Rust or Elixir Hi Elixir community! I’m here because i want learn a new language. I’m a junior developer and mainly i ...
New
jay1
Why is it that the mnesia database isn’t the most preferred database for use in Elixir/Phoenix?
New
jononomo
For some reason my phoenix channels are working for me in my local dev environment, but as soon as I deploy via Docker, I get a 403 error...
New
vonH
In asking this question I am more interested about the expressiveness of the language itself and less concerned about the availability of...
New

Latest on Elixir Forum

We're in Beta

About us Mission Statement