Andreas Rozek Lesehinweise letzte Änderungen Gästebuch-Eintrag Mitteilungen an den Autor  English Version  zur Leitseite zum vorherigen Thema zum nächsten Thema  zur ersten Seite zur vorherigen Seite zur nächsten Seite

Lua_04 - Tag-Methoden für numerische Operatoren

Werden in einem Lua-Programm arithmetische Operatoren auf nicht-numerische Operanden angewandt, so führt dies zum Aufruf einer passenden Tag-Methode (sofern definiert, ansonsten kommt es zum Abbruch des Programmes). "Lua_04" nutzt diesen Mechanismus, um einen neuen numerischen Datentyp zu definieren, dessen Instanzen wie Werte vom Typ "number" in arithmetischen Ausdrücken eingesetzt werden können. Ähnlich wie in der Programmiersprache Python [2,3] werden dazu für jeden binären Operator zwei verschiedene Methoden angelegt - je eine für den Fall, daß der linke Operand (bzw. beide Operanden) oder nur der rechte Operand nicht-numerisch (präziser: von einem bestimmten Datentyp) ist.

Als Demonstrationsobjekt müssen - wie so oft in vergleichbaren Situationen - die komplexen Zahlen herhalten: "Lua_04" definiert (mit den von "Lua_03" her bekannten Mechanismen) eine "Klasse" namens "Complex" mit Methoden für die Grundrechenarten sowie Potenzierungs- und Vergleichsoperationen und trägt diese als Tag-Methoden für die zugehörigen Lua-Operatoren ein.

"Lua_04" wird ohne Angabe von Kommandozeilen-Argumenten aufgerufen

  lua Lua_04.lua

und liefert folgende Ausgabe:

  Lua_04 - experiments with tag-methods for numeric operators

  complex numbers:
    a = 1.0+i*1.0 = 1+i*1
    b = 2.0       = 2
    c =     i*3.0 = 0+i*3

  basic operators:
    -a  = -1-i*1
    -c  = 0-i*3
    a+b = 3+i*1
    a+c = 1+i*4
    a-b = -1+i*1
    a-c = 1-i*2
    a*b = 2+i*2
    a*c = -3+i*3
    a/b = 0.5+i*0.5
    a/c = 0.3333333333333333-i*0.3333333333333333

Die Programmausgabe wird zweckmäßigerweise in Verbindung mit dem zugehörigen Quelltext analysiert und verdeutlicht die korrekte Funktion der zuvor beschriebenen Funktionen und Methoden.

Quelltext

Das Programm steht im Quelltext zur Verfügung:

Damit die innerhalb von "Lua_04.lua" definierten Funktionen auch in anderen Beispielen eingesetzt werden können, können sie als eigene Skript-Datei heruntergeladen werden:

Literaturhinweise

[1] Roberto Ierusalimschy, Luiz Henrique de Figueiredo, Waldemar Celes
Reference Manual of the Programming Language Lua 4.0
(siehe http://www.lua.org/manual)
das Referenzhandbuch enthält alle wesentlichen Informationen zur Sprache selbst, den zugehörigen Standardbibliotheken und der Schnittstelle zur Laufzeitumgebung;
[2] Python Language Website
(siehe http://www.python.org)
die genannte Web-Seite ist der Ausgangspunkt für Recherchen zum Thema "Python"
[3] Python 2.2.1 Documentation
(siehe http://www.python.org/doc/current)
die Dokumentation zur jeweils aktuellen Python-Version kann entweder heruntergeladen oder unter der angegebenen Adresse im Internet eingesehen werden

Haftungsausschluß

Bitte beachten Sie auch den Haftungsausschluß des Autors!

http://www.Andreas-Rozek.de/Lua/Acquainting/Lua_04.html    (letzter Stand: 14.04.2002)