Blatt 3 - Übung 12

Disclaimer: Dieser Thread wurde aus dem alten Forum importiert. Daher werden eventuell nicht alle Formatierungen richtig angezeigt. Der ursprüngliche Thread beginnt im zweiten Post dieses Threads.

Blatt 3 - Übung 12
Eine Frage zur Übung 12 (2te Teilaufgabe). Man muss hier alle Fälle definieren:

  • listen(compose c@listening d@speaking)
  • listen(compose c@speaking d@listening)
  • listen(compose c@listening d@listening)
  • listen(compose c@speaking d@speaking)
  • says(compose c@listening d@speaking)
  • says(compose c@speaking d@listening)
  • says(compose c@listening d@listening)
  • says(compose c@speaking d@speaking)
  • continue(compose c@listening d@speaking)
  • continue(compose c@speaking d@listening)
  • continue(compose c@listening d@listening)
  • continue(compose c@speaking d@speaking)

Der Bot den wir definieren sollen, soll doch nur lesen und nie was sagen, d.h. für alle says(…) = () oder?


Zu viel des guten :-), du musst/darfst nicht alle Fälle definieren. Der neue bot Compose ist entweder im Zustand listening oder im Zustand speaking, niemals beides. Und außerdem musst du angeben, in welchem er sich befindet. Das machst du implizit, indem du für eine Kombination der Zustände von c und d, eben entweder nur den Observer listen (für Zustand listening), oder nur die Observer says und continue (für Zustand speaking) definierst.

Warum sollte das so sein? Wenn der erste (bzw. einer der zwei) parameter mute ist, dann wird nichts gesagt (Siehe aufgabe 3(a)). Andernfalls kann sehr wohl etwas gesagt werden (Siehe andere Eigenschaften 3(b) und 3(c))