Il verbo prendi_da va rivisto perché contiene clausole impossibili e contradittorie.
La sintassi:
SYNTAX prendi_da = prendi (ogg) da (detentore)
WHERE ogg IsA THING
...
AND detentore IsA CONTAINER
...
... consente di prendere un attore da un contenitore (incluse un altro attore), ma questo non può accadare dato che Alan non consente di mettere attori in contenitori.
Credo che l'idea originale fosse quella di implementare un qualche sistema per emulare attori in contenitori tramite classi specializzate che ridefinissero il verbo prendi_da — in fatti nel corpo del verbo leggiamo:
DOES
IF ogg IsA ACTOR
THEN SAY THE ogg. "would probably object to that."
-- actors are not prohibited from being taken in the checks; this is to
-- allow for example a dog to be picked up, or a bird to be taken out of
-- a cage, etc.
... ma questo è impedito dai seguenti CHECK:
ADD TO EVERY THING
VERB prendi_da
WHEN ogg
CHECK [...]
...
AND ogg IS spostabile
...
AND ogg IS prendibile
...
AND ogg IN detentore <-- NON ACCADRÀ MAI!
Una possibile soluzione sarebbe quella di implmentare il verbo prendi_da anche sulla classe object e spostare lì i CHECK che non riguardano gli attori.
Il verbo
prendi_dava rivisto perché contiene clausole impossibili e contradittorie.La sintassi:
... consente di prendere un attore da un contenitore (incluse un altro attore), ma questo non può accadare dato che Alan non consente di mettere attori in contenitori.
Credo che l'idea originale fosse quella di implementare un qualche sistema per emulare attori in contenitori tramite classi specializzate che ridefinissero il verbo
prendi_da— in fatti nel corpo del verbo leggiamo:... ma questo è impedito dai seguenti
CHECK:Una possibile soluzione sarebbe quella di implmentare il verbo
prendi_daanche sulla classeobjecte spostare lì i CHECK che non riguardano gli attori.