Questions tagged [scheme]

Scheme is a functional programming language in the Lisp family, closely modeled on lambda calculus with eager (applicative order) evaluation. FOR questions about URL schemes PLEASE use the tag "URL-scheme".

Scheme is a functional programming language. It is designed to provide a mathematically well-founded language based on lambda calculus (with eager evaluation).

It follows a minimalist design philosophy specifying a small standard core with powerful tools for language extension. Its compactness and elegance have made it popular with educators, language designers, programmers, implementors, and hobbyists.

The Scheme language belongs to the Family. Since Scheme uses a single namespace for naming functions and other values, it is called a lisp-1.

Over the years, attempts at standardizing Scheme have been made including the R5RS standard, the somewhat controversial R6RS, and the most recent standard R7RS which is attempting to split the language into small and large (ongoing) standards.

Free Scheme Programming Books

Implementations

Community Websites

8110 questions
74
votes
8 answers

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?
Joel McCracken
  • 2,275
  • 3
  • 17
  • 11
73
votes
3 answers

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…
user59634
71
votes
9 answers

Why is the Lisp community so fragmented?

To begin, not only are there two main dialects of the language (Common Lisp and Scheme), but each of the dialects has many individual implementations. For example, Chicken Scheme, Bigloo, etc... each with slight differences. From a modern point of…
Justin Ethier
  • 131,333
  • 52
  • 229
  • 284
69
votes
13 answers

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…
MikeC8
  • 3,783
  • 4
  • 27
  • 33
68
votes
7 answers

What is ' (apostrophe) in Lisp / Scheme?

I am on day 1 hour 1 of teaching myself Scheme. Needless to say, I don't understand anything. So I'm reading The Little Schemer and using this thing: http://sisc-scheme.org/sisc-online.php as an interpreter. I need to use ' in for example (atom?…
jjerms
  • 1,095
  • 1
  • 10
  • 10
65
votes
10 answers

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…
Michał Niedźwiedzki
  • 12,859
  • 7
  • 45
  • 47
64
votes
13 answers

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…
Muhammad Alkarouri
  • 23,884
  • 19
  • 66
  • 101
62
votes
2 answers

What is the difference between quote and list?

I know that you can use ' (aka quote) to create a list, and I use this all the time, like this: > (car '(1 2 3)) 1 But it doesn’t always work like I’d expect. For example, I tried to create a list of functions, like this, but it didn’t work: >…
Alexis King
  • 43,109
  • 15
  • 131
  • 205
61
votes
10 answers

How to install MIT Scheme on Mac?

I want to install MIT Scheme on my Mac, I have downloaded the MacOS X binary(x86-64). However, I could not make it work using Mac Terminal. I have tried to follow these articles: Installing MIT/GNU Scheme on Mac OS X Leopard Installing MIT Scheme on…
Timeless
  • 7,338
  • 9
  • 60
  • 94
60
votes
6 answers

What exactly is a symbol in lisp/scheme?

For the love of the almighty I have yet to understand the purpose of the symbol 'iamasymbol. I understand numbers, booleans, strings... variables. But symbols are just too much for my little imperative-thinking mind to take. What exactly do I use…
dotnetN00b
  • 5,021
  • 13
  • 62
  • 95
60
votes
8 answers

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…
unj2
  • 52,135
  • 87
  • 247
  • 375
60
votes
16 answers

Lisp Web Frameworks?

What are the popular (ok, popular is relative) web frameworks for the various flavours of LISP?
jsight
  • 27,819
  • 25
  • 107
  • 140
56
votes
4 answers

How do I execute a .scm script (outside of the REPL) with MIT-Scheme?

I want to type something like 'scheme file.scm' and have it interpret the file, and then take me back to my shell, rather than loading it in the REPL. edit: I tried scheme < test.scm and it still uses the REPL, the only difference is that scheme…
Rusty
54
votes
12 answers

How to implement continuations?

I'm working on a Scheme interpreter written in C. Currently it uses the C runtime stack as its own stack, which is presenting a minor problem with implementing continuations. My current solution is manual copying of the C stack to the heap then…
Kyle Cronin
  • 77,653
  • 43
  • 148
  • 164
54
votes
15 answers

What's a good beginning text on functional programming?

I like to study languages outside my comfort zone, but I've had a hard time finding a place to start for functional languages. I heard a lot of good things about Structure and Interpretations of Computer Programs, but when I tried to read through…
OwenP
  • 24,950
  • 13
  • 65
  • 102