[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