words:tags
Inhaltsverzeichnis
Brainstorming im IRC
Was haben Emails, Files, Twitterpostings? Tags.
Forth hat Flags (Immediate) und Farben (Colorforth).
Flags und Farben sind eigentlich Tags. Sind sie vorhanden, haben die betreffenden Worte bestimmte Eigenschaften, die sie sonst nicht haben.
Mögliche Einsatzfelder für Tags sind
- Immediate Flag (und andere)
- Optimiererhinweise (Konstantenfaltung etc)
- Wortlistenmitgliedschaft
- Farben (die von Colorforth)
- OO Varianten
Aufhänger ist das Name Token
- hat bislang alle Flags
- Tags sind mit Namen assoziiert
Execution Tokens sind zu low level
Glossar
tag-id ist eine zellige Angabe ohne nähere Bewertung des numerischen Werts. nt ist das Name Token aus Forth 2012
- create-tag ( – tag-id ) legt ein neues Tag an. Analog zu wordlist. Kann später einen Namen via constant erhalten.
- assign-tag ( nt tag-id – ) weist ein Tag einem Wort zu. NT ist dessen Name Token
- remove-tag ( nt tag-id – ) entfernt ein Tag von einem Wort
- delete-tag ( tag-id – ) Entfernt ein Tag. Etwas problematisch, auch wordlists leben ewig.
- map-tag ( ix tag-id xt – jy f ) Ein allgemeiner Iterator. Für alle Worte mit dem Tag mach was, flag ermöglicht das vorzeitige Verlassen der Schleife. Siehe traverse-wordlist.
- has-tag? ( nt tag-id – f ) prüft, ob ein Wort mit einem (bekannten) Tag markiert ist.
- get-tags ( nt – tag-n tag-1 n ) Lese alle Tags eines Wortes aus.
- set-tags ( tag-n tag-1 n nt – ) Überschreibe alle Tags eines Wortes
Beispiele
Immediate wird zum Tag Immediate. Mittels „immedate has-tag?“ kann der Interpreter diese Eigenschaft abfragen und darauf reagieren.
Alle Worte mit dem Tag „FOO“ sind in der Wortliste „FOO“.
words/tags.txt · Zuletzt geändert: 2015-03-19 20:14 von bernd