RSSAmplifier

Blog

Simon Dobson

Aut tace aut loquere meliora silentio

simondobson.orgRSS feed ↗10 posts

Latest posts

Unexpected (to me) behaviour in Lisp sub-typing

Unexpected (to me) behaviour in Lisp sub-typing I just encountered some unexpected behaviour in how Common Lisp (or at least SBCL ) handles array sub-typing. Suppose you have a structure declaration like this: ( defstruct A ( a #1A () :type ( simple-array integer ))) We can create instances of this struct by providing an initial value, and it will be type-checked. ( make-a :a #1A ( 1 2 3 )) #S(A…

A road to Lisp -- Which Lisp?

A road to Lisp: Which Lisp? A Road to Lisp: Which Lisp A blog post reviewing four dialects of Lisp that a beginner wanting to start with Lisp can choose: Common Lisp, Clojure, Racket, and ELisp. The author, Elia Scotto, interestingly doesn't include Scheme, although he does present Racket as a Scheme dialect (which of course it is). Does the choice too make initially matter? Dialect matters, but…

Antwerp

Michael Pye (2021) Antwerp is, to the modern eye, a strange choice for an urban biography. But it's a place that can make a fair claim to having invented a lot of the modern world, notably the financialisation of trade and especially of art: the first place where one bought paintings from dealers rather than commissioning them from the studios. A place that tried valiantly to separate trade from…

Hothouse Earth: An Inhabitant's Guide

Bill McGuire A horror story, with the additional horror of being entirely backed by science. I'm writing during the 2026 summer heatwaves in the UK, and this was really not the time to be reading this book. It lays bare the best estimates for changes caused by global heating to everything from diseases and food production to sea levels and increased earthquakes (caused by the land rebounding after…

Beautiful Racket: An introduction to language-oriented programming using Racket

Beautiful Racket: An introduction to language-oriented programming using Racket Matthew Butterick. Beautiful Racket: An Introduction to Language-Oriented Programming Using Racket . 2024. Racket positions itself as a "programmable programming language" – more so than Lisp's usual claim to this title – which makes it attractive for exploring multi-paradigm and multi-language programming. Racket's…

A programmable programming language

A programmable programming language Matthias Felleisen, Robert Bruce Findler, Matthew Flatt, Shriram Krishnamurthi, Eli Barzilay, Jay McCarthy, and Sam Tobin-Hochstadt. A Programmable Programming Language . Communications of the ACM 61 , pp.62–71. 2018. Lisp has been described as a "programmable programming language": the fact that Lisp code is valid Lisp data and can be manipulated as such,…

Stasiland: Stories from Behind the Berlin Wall

Anna Funder (2003) A view of East Germany by a semi-outsider, an Australian living in the East. Perhaps this gives a better perspective. The Stasi come across in this book as the most dedicated and efficient secret police force imaginable. They want to known everything – to the extent of imprisoning one of their own agents for not reporting something that he knew would get him into trouble – and…

The Lisp curse

The Lisp curse https://www.winestockwebdesign.com/Essays/Lisp_Curse.html The power of Lisp is its own worst enemy. An interesting essay on the "Lisp curse", the idea that Lisp's power can sometimes be a disadvantage for developers. The core idea expressed as a question: how hard is it to add object-oriented features to a language? In the C world it's happened twice, giving rise to C++ and…

Programming algorithms in Lisp

Programming algorithms in Lisp Vsevolod Domkin. Programming Algorithms in Lisp . Apress. 2021. This is exactly what it sounds like: an algorithms textbook that uses Lisp as its implementation language. It has the strengths and weaknesses of all such textbooks: it shows programmers, especially new programmers, how to write algorithms that are both correct and efficient, and the places where…

Modern Common Lisp with FSet

Modern Common Lisp with FSet https://fset.common-lisp.dev/Modern-CL/Top_html/index.html A book-length description of a library, FSet , that provides functional collections for Lisp. By "functional collections" the author means collections – sets, trees, maps, and others – where update always produces a new collection rather than mutating the original collection in place. This is an attractive…