Next: S-Expression , Previous: Datentypen , Up: Datentypen , Home: Allgemeine Einführung

Algorithmische Komposition mit Common Lisp

Atom

Atome sind Ausdrücke, die nicht weiter unterteilbar sind und die zu sich selbst evaluieren ("deren Wert sie selbst sind"). Hierzu zählen

  • Zahlen
;;     Integer (ganze Zahlen), Floats (Kommazahlen), Ratios (Brüche)

1
1.1
1/2

;;;      Mathematische-Funktionen:
;;;      mod, min, max, expt, log, round, floor, abs

(+ 1 1)
(+ 1 (- 3 2))
(mod 4 3) ; Rest
(log (expt 2 (round (* 1.3 (floor  (min 3 2.6))))) 2)

  • Boolean (wahr oder falsch)

    Die Werte wahr und falsch werden in Common Lisp durch T und NIL dargestellt. Sie sind von großer Bedeutung in Lisp und es existieren viele Funktionen, die einen dieser Werte zurückliefern. Als Anwender ist es auch häufig sinnvoll, in Programmen selbst solche Funktionen zu definieren. Sie werden analog zum gleichen Begriff in der Aussagenlogik Prädikat (englisch predicate) genannt. Hier einige Beispiele für Prädikate:

;      Tests
;      =, >, <, >=, <=, evenp, oddp, 

(= 4/5 0.8) ;; -> NIL !
(= (float 4/5) 0.8) ;; -> T
(>= 5/6 0.8) ;; -> T

;;; Test für gerade/ungerade

(evenp 3) ;; -> NIL
(oddp 3) ;; -> T

;;; Test für Datentypen

(numberp 4) ;; -> T
(numberp "Helmut") ;; -> NIL
(stringp "Helmut") ;; -> T
(atom "Helmut") ;; -> T
(atom 'Hallo) ;; -> T
(atom '(1 2 3)) ;; -> NIL

  • Zeichenketten (Strings)

    Zeichenketten bestehen aus beliebigen Zeichen, die von Apostrophen eingerahmt werden. Soll ein solches Apostroph Bestandteil der Zeichenkette sein, so muss das Zeichen \ unmittelbar davor geschrieben werden. Dieser Schrägstrich rückwärts wird bei einer formatierten Ausgabe in eine Textdatei oder in die REPL nicht ausgedruckt. Ein expliziter Schrägstrich rückwärts wird innerhalb einer Zeichenkette durch zwei unmittelbar aufeinanderfolgende Schrägstriche rückwärts bezeichnet.

"Helmut Lachenmann"

"ein \"Zitat\" innerhalb einer Zeichenkette"

"Ein Schrägstrich geht so: \\"

;;; formatierte Ausgabe in die REPL:

(format t "~a" "ein \"Zitat\" innerhalb einer Zeichenkette")


  • Symbole

    Symbole sind Zeichenketten, die mit einem beliebigen Charakter ausser einer Zahl oder den Zeichen ", ' oder # beginnen und anschließend beliebig viele Zeichen (mit Ausnahme von sogenannten white-space-characters, wie Leerzeichen, Zeilenwechseln oder Tab-Zeichen) enthalten.

;;; gültige Symbole

a 
ein-symbol
noch-0-+*-ein-Symbol
_und-noch123-eins_

;;; keine Symbole:

1hallo ;;; beginnt mit einer Zahl
#hallo ;;; beginnt mit dem Zeichen #
"hallo ;;; wird als unvollständige Zeichenkette gelesen