AW: [Allegro] Tertium non datur?

Fischer, Thomas fischer at sub.uni-goettingen.de
Mo Apr 4 15:55:40 CEST 2011


Hallo Herr Eversberg,

> Am 03.04.2011 13:07, schrieb Fischer, Thomas:
> > wenn man den Befehl
> > next #
> > ausgibt, erwartet man eine von zwei Möglichkeiten:
> > "if yes ..." bearbeitet die eine
> > "if no ..." die andere.
> > Es scheint aber noch andere Ergebnisse zu geben!

> Ja, es gibt in der Tat theoretisch eine dritte Möglichkeit: 
> die unbesetzte Satznummer.
> Das ist dokumentiert in xnext.rtf unter  "find #"  und sogar 
> mit (!) gekennzeichnet.
> "Theoretisch" deshalb, weil unbesetzte Nummern übergangen 
> werden, der Fall also praktisch nicht auftritt. Er tritt 
> jedoch unvermeidbar bei  "find #..."  
> auf und
> ist dann mit  "if cancel ..."  abzufangen, während  "if no 
> ..."  auf eine zu große Satznummer testet. Deshalb wurde 
> dieselbe Semantik bei  "next #"  
> implementiert.
> 
> Unbesetzte Satznummern gibt es nur, wenn vorher eine "Bereinigung" 
> genacht wurde
> (früher "Entlüftung" genannt), bei der gelöschte Sätze 
> entfernt, deren Nummern aber nicht neu besetzt werden, d.h. 
> die Sätze ihre internen Nummern behalten und damit die 
> Nummern der gelöschten Sätze nicht mehr besetzt sind. 
> Vermutlich ist der Fall selten, muß aber natürlich geregelt sein.

In h next steht für das "einfache" next: 

next  [Gegenteil:  prev  ]    avanti
      Der nächste Satz der Erg.menge, in der vorher eingestellten
      Sortierfolge, wird geladen. 
      Mit  if yes/no  ... kann man checken, ob es einen nächsten
      Satz gab. Wichtig bei Schleifen!

Ich hatte gehofft, dass 'next #' sich analog verhält. Da dort aber "if yes ..." und "if no..." gar nicht erwähnt wird, frage ich mich jetzt, was denn da getestet wird.
An der erwähnten Stelle steht auch: "Mit if cancel ... (!) kann man prüfen, ob die Datenbank zu Ende ist, also kein nächster mehr da war", das entspricht aber nicht Ihrer Erklärung.

Wenn ich das recht sehe, gibt es bei 'next #' die möglichen Ergebnisse:
yes: ??
no: ???
del: Satz gelöscht
cancel: Ende der Datenbank

Das sollte vielleicht präzisiert werden; wie wohl schon durch das (!) angedeutet, ist das "if cancel..." auch eine ziemlich unglückliche Begriffswahl.

Mit freundlichen Grüßen
Thomas Fischer 


Mehr Informationen über die Mailingliste Allegro