Gegebener Code zu den Übungen Kompaktkurs Common Lisp


Auf dieser Seite sind größere Codebeispiele von den Übungsblättern zu finden, um das Abtippen zu sparen. Einfach markieren und in den Editor (Emacs oder DrScheme-Editorfeld) kopieren (X-Windows: "abwerfen" mit der mittleren Maustaste).

Blatt 5

Aufgabe 3

 
(defun tabelle (fkt liste)
  (do ((li liste (cdr li))
       (erg () (cons (list (car liste)
                           (funcall fkt (car liste)))
                     erg)))
      ((null li) erg)))

Blatt 6

Aufgabe 2

 
(defun vector-add (x y)
  (let ((z nil) n)
    (setq n (min (list-length x)(list-length y)))
    (dotimes (j n (reverse z))
      (setq z (cons (+ (nth j x)(n j y)) z)))))

Aufgabe 4

Speichern Aie die folgenden Daten in einer Datei in Ihrem Verzeichnis ab:
 
(ANNA   1.7     1.3     1.0     2.3     1.3     1.0)
(BERTA  2.3     3.7     3.3     1.7)
(CARLA  4.0     5.0     4.3     2.7     3.3)
(DORA   1.0     1.0     1.0)
(ERNA   3.3     4.0     1.0     2.7     1.7     2.0     3.3)
(FIONA  2.3     7.0     1.3     2.3)
(GERDA  )
(2.3    7.0     1.3     2.3)

Blatt 7

Aufgabe 1

 
(defmacro progn-in (work-package &body body)
  (let ((current-pack (gensym)))
    `(let ((,current-pack *package*))
       (setq *package* ,work-package)
       (unwind-protect ,(cons 'progn body)
         (setq *package* ,current-pack)))))

Blatt 8

Aufgabe 1

 
(setq *obstkorb* 
      (list (make-instance 'apfel :erntedatum 12)
            (make-instance 'birne :erntedatum 50)
            (make-instance 'orange :erntedatum 2)
            (make-instance 'zitrone :erntedatum 2)
            (make-instance 'kirsche :erntedatum 20)
            (make-instance 'kirsche :erntedatum 80)
            (make-instance 'aprikose :erntedatum 40)))