Опубликован интерпретатор Lisp, написанный с использованием языка утилиты GNU sed. Реализация занимает около 600 строк кода.
Поддерживаются следующие функции, операторы и выражения: car,
cdr,
cons,
eq,
atom,
+, -, *, /, mod,
neg?,
print,
quote,
if,
lambda,
defun и
define.
$ sed -f sedlisp.sed (car (quote (a b c))) a (cdr (quote (a b c))) (b c) (cons 1 (cons 2 (cons 3 ()))) (1 2 3) (defun fact (n) (if (eq n 0) 1 (* n (fact (- n 1))))) (lambda (n) (if (eq n 0) 1 (* n (fact (- n 1))))) (fact 10) 3628800 (defun fib (n) (if (eq n 1) 1 (if (eq n 0) 1 (+ (fib (- n 1)) (fib (- n 2)))))) (lambda (n) (if (eq n 1) 1 (if (eq n 0) 1 (+ (fib (- n 1)) (fib (- n 2)))))) (fib 12) 233 (defun gen (n) ((lambda (x y) y) (define G n) (lambda (m) (define G (+ G m))))) (lambda (n) ((lambda (x y) y) (define G n) (lambda (m) (define G (+ G m))))) (define x (gen 100)) (lambda (m) (define G (+ G m))) (x 10) 110 (x 90) 200 (x 300) 500