Collection of Great Applications and Programs using Macros

I am very very interested in Macros and just beginning to understand its true power. Please help me collect some great usage of macro systems. So far I have these constructs: Pattern Matching: Andrew Wright and Bruce Duba. Pattern matching for Scheme, 1995 Relations in the spirit of Prolog: Dorai Sitaram. Programming in schelog. … Read more

What is call/cc?

I’ve tried several times to grasp the concept of continuations and call/cc. Every single attempt was a failure. Can somebody please explain me these concepts, ideally with more realistic examples than these on Wikipedia or in other SO posts. I have background in web programming and OOP. I also understand 6502 assembly and had a … Read more

Lisp and Erlang Atoms, Ruby and Scheme Symbols. How useful are they?

How useful is the feature of having an atom data type in a programming language? A few programming languages have the concept of atom or symbol to represent a constant of sorts. There are a few differences among the languages I have come across (Lisp, Ruby and Erlang), but it seems to me that the … Read more

What is a ‘thunk’, as used in Scheme or in general?

I come across the word ‘thunk’ at a lot of places in code and documentation related to Scheme, and similar territories. I am guessing that it is a generic name for a procedure, which has a single formal argument. Is that correct? If yes, is there more to it? If no, please? For eg. in … Read more

Editing programs “while they are running”? Why?

I’ve been getting more into Lisp and Lispy languages lately, and I’m finding them quite powerful. One thing I’ve been reading all over the net is that a benefit of writing in Lisp, Clojure, etc, is that you can edit your program “while it’s running”. Perhaps I’m missing something, but what is the point? Sure, … Read more

What is the best Scheme implementation for working through SICP?

I have been using PLT Scheme, but it has some issues. Does anyone know of a better implementation for working through SICP? Answer Use Racket (formerly PLT Scheme). The DrRacket IDE is an excellent starting point for all things Scheme including SICP. To look up keywords in the documentation, place the cursor on the keyword … Read more