home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
The Datafile PD-CD 3
/
PDCD_3.iso
/
utilities
/
utilsd
/
edit
/
!lEdit
/
l
/
support
< prev
next >
Wrap
Text File
|
1995-01-19
|
1KB
|
55 lines
;;; *** lEdit - Lisp Editor ***
;;; (c) 1995 Urs Bisang
;;; Version 0.1
;;;
;;; dieses file enthaelt low-level support routinen fuer lEdit
;;;
;; ** globale variablen **
(define *gensym-counter* 0)
;; routine zur ausgabe von fatalen 'internal errors'
(define-syntax ierr (:rest x)
(eval `(werr 1 "*internal error* " (string-concat ,@x))))
;; inkrementiere eine variable
(define-syntax inc! (x)
(set-eval! x (+ (eval x) 1)))
;; dekrementiere eine variable
(define-syntax dec! (x)
(set-eval! x (- (eval x) 1)))
;; generiere ein einmaliges eindeutiges symbol
(define (gensym)
(string->symbol (string-concat "#:sym" (inc! *gensym-counter*))))
;; erstes element einer liste
(define (first l) (car l))
;; zweites element einer liste
(define (second l) (car (cdr l)))
;; drittes element einer liste
(define (third l) (car (cdr (cdr l))))
;; entferne alle elemente elt aus einer liste
(define (list-remove l elt)
(let ((l1 nil))
(while l
(if (not (equal? (car l) elt))
(set! l1 (append l1 (car l))))
(set! l (cdr l)))
l1))