Collection of Great Applications and Programs using Macros

Culpepper & Felleisen, Fortifying Macros, ICFP 2010 Culpepper, Tobin-Hochstadt and Felleisen, Advanced Macrology and the Implementation of Typed Scheme, Scheme Workshop 2007 Flatt, Findler, Felleisen, Scheme with Classes, Mixins, and Traits, APLAS 2006 Herman, Meunier, Improving the Static Analysis of Embedded Languages via Partial Evaluation, ICFP 2004

What exactly is a symbol in lisp/scheme?

In Scheme and Racket, a symbol is like an immutable string that happens to be interned so that symbols can be compared with eq? (fast, essentially pointer comparison). Symbols and strings are separate data types. One use for symbols is lightweight enumerations. For example, one might say a direction is either ‘north, ‘south, ‘east, or …

Read more

What are the actual differences between Scheme and Common Lisp? (Or any other two dialects of Lisp)

This is a bit of a tricky question, since the differences are both technical and (more importantly, in my opinion) cultural. An answer can only ever provide an imprecise, subjective view. This is what I’m going to provide here. For some raw technical details, see the Scheme Wiki. Scheme is a language built on the …

Read more

What are the differences between Clojure, Scheme/Racket and Common Lisp?

They all have a lot in common: Dynamic languages Strongly typed Compiled Lisp-style syntax, i.e. code is written as a Lisp data structures (forms) with the most common pattern being function calls like: (function-name arg1 arg2) Powerful macro systems that allow you to treat code as data and generate arbitrary code at runtime (often used …

Read more

How is Racket different from Scheme?

Racket is ultimately based on R5RS, and not R6RS and not a strict superset of either. I don’t think it can be called ‘Scheme’ because it’s not backwards compatible with any Scheme standard. Most implementations offer extensions, but are otherwise backwards compatible, of course, the compiler that comes with Racket can also run in R5RS …

Read more