A Lisp adventure on the calm waters of the dead C I will use a C-like language throughout, with substantial liberties in its syntax, and I will try to answer "what if" and "how" questions regarding the implementation of some new features that actually cannot be implemented in C due to its limitations. I will examine and highlight those limitations. The scope of this exercise is to better understand Lisp and the power of the abstractions it offers over and above what most languages have, even though there will be no line of Lisp anywhere. For the full experience, you are encouraged to come up with new examples, sketch some exercises with pen and paper and think hard about these problems on your daily walks. Were there no advantages to be reaped from these studies, beyond the gratification of an innocent curiosity, yet ought not even this to be despised; as being one accession to those few safe and harmless pleasures, which are bestowed on human race. — David Hume - An Enquiry Concerning Human Understanding (1748) The basic abstractions of any language, the standard function The function, as an abstraction, is known to every developer. But what is, conceptually speaking, a function? Ignoring any implementation details like stacks and pointers and just taking a higher-level view of the concept of function, we can begin to understand its essence (example slightly adapted), […] people who use the word 'function' ordinarily have in mind expressions in which a number is just indicated indefinitely by the letter x, e.g. 2*x3 + x People call x the argument, and recognize the same function again in 2*13 + 1, 2*43 + 4, 2*53 + 5, only with different arguments, viz. 1, 4, and 5. From this we may discern that it is the common element of these expressions that contains the essential peculiarity of a function; i.e. what is present in 2*x^3 + x over and above the letter x. We could write this somewhat as follows: 2*( )3 + ( ) I am concerned to show that the argument does not belong ...
First seen: 2025-06-27 10:26
Last seen: 2025-06-27 14:27