DEV Community

Cover image for Lisp -> Scheme Lisp -> CHICKEN Scheme
Christian Himpe
Christian Himpe

Posted on

Lisp -> Scheme Lisp -> CHICKEN Scheme

This is a short and opinionated overview on why using a Lisp, a Scheme, or particularly CHICKEN Scheme is the thing.

Why Lisp

  • Simple Syntax: Everything is essentially a list, syntactically bounded by parenthesis with elements delimited by whitespace, known as S-expressions.
  • Functional Language: Functions are first-class data types (lambda), recursion instead of iteration, support of closures, map/filter/fold higher order functions: Lisps make functional programming easy.
  • Garbage Collected: Memory management is taken care of, as it should be.
  • Dynamic Typing: Python and JavaScript, very popular languages, are dynamically typed, so this must be good.
  • Easily Implemented: Many tutorials for building your own Lisp are available.

Why Scheme Lisp

  • Minimal Lisp: Schemes provide a minimal set of core forms and functions.
  • RnRS Standards: Scheme is a standardized language, so standard implementations are compatible.
  • SRFIs Extensions: The Scheme Requests For Implementation are reviewed proposals for extensions.
  • Semantic Naming: Predicates should have the suffix ?, mutations the suffix !.
  • Tail-Call Optimization: Schemes have to support tail-call recursion.

Why CHICKEN Scheme

  • R5RS Standard: With 50-pages, this is a programming language definition one can understand, cf. C++.
  • Cross Platforms: Due to the sole, minimal libc dependency, CHICKEN is available on many platforms.
  • Open Source: CHICKEN Scheme is BSD-licensed and thus usable for all purposes.
  • Included Modules: Various often-used SRFIs and non-standard utilities are part of the package.
  • Extension Repository: More than 500 eggs (extensions) are listed in the offical repository.

Top comments (0)