EMA-XPS Online


[AND

[AND
====

Syntax: (ask [and {<Prädikation> ...}] <Continu.>)

HINWEIS: [AND nur INNERHALB von ASK verwenden!

Diese Funktion ist eine Compound-Prädikation. Sie 
versucht nacheinander, die einzelnen Prädikationen
auszuwerten. Ist die Auswertung einer Prädikation
erfolgreich, d.h. verbleibt eine nicht leere Menge von
Zuweisungen an BQL-Variablen, wird die nächste Prädi-
kation ausgewertet. Sobald eine Auswertung nicht er-
folgreich ist, wird die weitere Abarbeitung der Funktion
abgebrochen.

Gleichzeitig können in der Funktion LISP-Ausdrücke
verwendet werden, bei denen die gleichen Bedingungen zu
erfüllen sind, wie bei Prädikationen. Dabei gilt
der Rückgabewert NIL als erfolglos, alle anderen als
erfolgreich.

Erst wenn die Funktion erfolgreich ausgewertet wurde,
wird die 'Continuation' ausgeführt. War die Auswer-
tung jedoch nicht erfolgreich, wird die 'Continuation'
nicht ausgeführt.

Diese Funktion wird benutzt, wenn der Gültigkeits-
bereich einer BQL-Variablen präzisiert werden soll,
oder wenn im klassischen Sinne einer UND-Verknüpfung
die Continuation eines ASK nur dann ausgeführt
werden soll, wenn die Prädikationen der [AND-Funktion
erfolgreich ausgewertet werden konnten.

Die [AND-Funktion liefert keinen brauchbaren
Rückgabewert.

Beispiel: >(ask
            [and
             [Computer _ein-computer]
             [Optionen _ein-computer 
                       _eine-option]]
            (kb-format "~% Der Computer ~A
              hat folgende Optionen: ~% ~A"
             (name-of _ein-computer)
             (name-of _eine-option)))
           Der Computer SIEMENS-NIXDORF hat
             folgende Optionen:
           1GB-FESTPLATTE
           Der Computer SIEMENS-NIXDORF hat
             folgende Optionen:
           16MB-RAM
           Der Computer WANG hat folgende
             Optionen:
           850MB-FESTPLATTE
           Der Computer WANG hat folgende
             Optionen:
           QUAD-SPEED-CDROM
          NIL


EMA-XPS Online