What is Nostr?
Ramin Honary /
npub1053…uwdv
2025-02-20 07:54:01
in reply to nevent1q…3c2v

Ramin Honary on Nostr: Are you a Lisper? If yes, What made #lisp special in your view? nprofile1q…yupw2 a ...



Are you a Lisper? If yes, What made #lisp special in your view?

nprofile1qy2hwumn8ghj7un9d3shjtnddaehgu3wwp6kyqpqswe9yxa5vw4fk56mskz9ftfv65yp7n3cs0lqf88njs5jkua0ndhssyupw2 (nprofile…upw2) a few things:

absolute minimum amount of syntax, makes it very easy to understand how the computer sees each part of the program, makes it easy to implement your own parser if you want to.
the ability to define your own evaluator for Lisp syntax, also made considerably easier than other languages due to the minimal syntax. This also makes it easy to develop your own tooling, or to modify existing tooling for the language, which brings me to the next point…
macro programming: the ability to hack the Lisp compiler itself so that it can run your own evaluator (macro programming). This allows you to introduce language features when and where you need them, like linting, type checking, literate programming, alternative evaluation strategies (e.g. lazy evaluation, or concurrent evaluation), etc.
functional programming: it is based on the mathematics of lambda calculus, which is a very elegant way of defining algorithms and computation. If is also a computer for the “untyped lambda calculus“ which can implement any other typed lambda calculus as macros.
homoiconicity, again a feature of the minimal syntax, allows you to express programs as data, and data as programs. This is very useful for serialization and transport across multiple computers.
REPL-based development, which is a feature many languages have nowadays (although Lisp invented this feature), allows for rapid prototyping and easier debugging.
stability: Lisp languages like Common Lisp and Scheme have changed very little throughout the decades as there is no need to change them. Macro programming makes it so that you don’t need too add new language features all the time, language features become extensions you can import into your project.

#tech #software #ComputerProgramming #Lisp #CommonLisp #SchemeLang #Scheme #Clojure #FennelLang #GerbilLang #RacketLang
Author Public Key
npub1053m9ka5kf6r3rlcr3kmstaswqk2ewqduv2dvtjtud3p38r0dxvqepuwdv