We dissect nature along lines laid down by our native language. ... Language is not simply a reporting device for experience but a defining framework for it.-- Benjamin Whorf, Thinking in Primitive Communities
It is up to us to produce better-quality movies.-- Lloyd Kaufman, producer of Stuff Stephanie in the Incinerator
(define foo
  (lambda (n)
    (if (< n 10)
        n
	(let ((m (quotient n 10)))
	  (+ (- n (* m 10))
	     (* 100 (foo m)))))))
((mary had (a (little) lamb)) (its fleece) was (white (as snow)))
| expression | result | 
|---|---|
((lambda (x f) (f x x)) 'aye (lambda (y z) (list z y y)))  | |
(map (repeat car 2)
     '(((a b) (c d))
       ((e f) (g h))
       ((h i) (j k))))
 | |
(map (lambda (x)
       (if (number? x) x (x 6)))
     (list 13
           -
	   list
	   (lambda (x) (/ x 2))
	   even?))
 | |
(accumulate (lambda (x y)
              (list (car y)))
            '((a b) (d e f) (g h)))
 | |
(list (or 'w 'x 'y)
      (and 'm 'n 'o)
      (caadr
        (assoc 'x
               '(((y z) x)
	         (x (w y))
	         (p (d q))))))
 | |
(let ((x 'ex)
      (y 'why))
  (let ((y (list x y))
        (z (list y y x)))
    (list x y z)))
 | 
| definition | tail recursive  | not t.r. | 
|---|---|---|
(define bar
  (lambda (x y)
    (and (not (null? y))
         (if (equal? x (car y))
	     y
	     (bar x (cdr y))))))
 | ||
(define tr
  (lambda (s q)
    (cond ((pair? s)
           (cons (tr (cdr s) q)
	         (tr (car s) q)))
          ((null? s) q)
	  (else (list s)))))
 | 
Example:
(map-skip car '((a b) (c d) (e f) (g h) (i j) (p q) (r s) (t u))) ;;; returns: (a (c d) e (g h) i (p q) r (t u))
| expression | result | 
|---|---|
`(a ,(+ 1 2) (+ 3 4) ,5)  | |
(let ((x '(a b c))) `(1 (+ 2 3) ,@x 4 (5 ,x 6)))  | |
(map (lambda (x)
       `(,(+ 1 (car x))
         ,@(cdr x)
	 foo))
     '((10 100 1000)
       (20 200 2000)
       (50 5 555)))
 | |
(accumulate (lambda (x y) `(,@x - ,@y -)) '((a b c) (d e) (f g h)))  | 
For instance
(acrost '((a b c) (1 2 3) (d e f g) (w x y z) (11 12 13 14 15 16))) ;;; returns: (a 2 f z 15)
(define foo
  (lambda (s)
    (define aux
      (lambda (s ops)
        (cond ((pair? s)
	       (append (aux (car s) (cons 0 ops))
	               (aux (cdr s) (cons 1 ops))))
	      (else `((,(reverse ops) ,s))))))
    (aux s '())))
(foo '((a b) c d))