// guess the programming language of the day

$ whois scheme

Scheme

first released in 1975 · by Guy L. Steele, Gerald Jay Sussman

$ guessprog --inspect scheme

year
1975
paradigm
functional
family
lisp
memory
automatic gc
binding
dynamic
safety
strong

SCHEME(7)

AUTHORS
Guy L. Steele, Gerald Jay Sussman
HISTORY
Guy L. Steele and Gerald Jay Sussman created Scheme at the MIT AI Lab in 1975, while trying to understand Carl Hewitt's actor model of computation by building a tiny Lisp interpreter. They described it in a series of memos later known as the Lambda Papers. It was meant to be called "Schemer", after the AI languages Planner and Conniver, but the operating system they used limited file names to six characters. Its minimalism, lexical scoping and first-class continuations made it a favourite for teaching and research.
USAGE
Mainly used in education and programming language research, famously as the language of the classic MIT textbook Structure and Interpretation of Computer Programs. Implementations such as GNU Guile, Chez Scheme and Racket (a descendant) keep it alive, but it is a niche language in industry.
SEE ALSO
Scheme on Wikipedia ↗
$ cat compose.scm
(define (compose . fs)
  (if (null? fs)
      (lambda (x) x)
      (lambda (x) ((car fs) ((apply compose (cdr fs)) x)))))

(define inc-then-double
  (compose (lambda (x) (* 2 x)) (lambda (x) (+ x 1))))

(let loop ((i 0))
  (when (< i 3)
    (display (inc-then-double i))
    (newline)
    (loop (+ i 1))))