/usr/share/zenlisp/substitute.l is in zenlisp 2013.11.22-2.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | ; zenlisp example program
; By Nils M Holm, 1998-2007
; See the file LICENSE for conditions of use.
; Substitute variables in S-expressions.
; (substitute '(+ 1 2) '((1.i) (2.ii))) => '(+ i ii)
(define (substitute x env)
(letrec
((value-of
(lambda (x)
(let ((v (assq x env)))
(cond (v (cdr v))
(t x)))))
(subst
(lambda (x)
(cond ((null x) ())
((atom x) (value-of x))
(t (cons (subst (car x))
(subst (cdr x))))))))
(subst x)))
|