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)