| |
|
|
- Seite 1 - |
|
| var Bezeichner [ = Wert ] [, Bezeichner [ = Wert ], ...
Deklariert Variablenbezeichner und weist ihnen ggf. Werte zu.
Es können beliebig viele Variablen erstellt werden, erlaubt für die Bezeichnernamen sind Buchstaben und Ziffern und das erste Zeichen muss ein Buchstabe sein. Auch erlaubt sind die Zeichen _ und .
Hinweis: Var als Funktion kann verwendet werden um den Variablentyp zurückzuerhalten.
Siehe auch: § 5 - Datentypen
Beispiele für die Verwendung von Variablen:
Einfache Variable:
Einfache Variable, kompaktere Schreibweise:
var a=10,b=20.5,c="Hallo Welt"
print a,b,c// gibt 10 20.5 Hallo Welt aus
Array:
Assoziative Arrays:
var a=["Magnet"=5,"Faktor"=5.5,"Farbe"="Grün"]
print a["Faktor"]// gibt 5,5
Arrays als Objekte:
Arrays als Objekte:
Typ einer Variablen beziehen:
Keywords: var,declare,gettype |
|
|
| |
|
|
|
| |
|
- Seite 1 - |
|
HofK | "Es sei denn, nach sqrt wird solange numerisch "gedacht" wie es geht."
Ich hatte es gehofft, aber nicht unbedingt erwartet, denn derartig lästige Sonderzeichen sparendes, wirklich vereinfachendes habe ich bei den gängigen Sprachen bisher nicht gesehen. Gibt es das überhaupt schon irgendwo?
Sicher muss man es so einsetzen, dass die Übersichtlichkeit nicht zu kurz kommt. Das wird sich praktisch schnell zeigen.
Der Präkompilierer mit der Syntaxeigenschaft/Syntaxmittel Kodeergänzung durch Space Operator verdient eventuell einen eigenen Paragraphen, bei § 7 Operatoren geht der Space Operator etwas unter und ist ja dann auch kein klassischer Operator.
Das Leerzeichen, der Space Operator ist ein intelligenter Space Seperator, ein intelligenter Trenner, ein Space-Autoseparator kurz ein Autoseparator, ein polymorpher Seperator, damit noch etwas polymorphes bei InfinityProfan.
" ... das vor den logischen Operatoren aufgelöst wird ... er kann nur von Rechts nach Links aufgelöst werden." ist ganz wichtig zum Verständnis und sollte in den Paragraphen rein. Kann man den zugrundeliegenden Algorithmus kurz/vereinfacht/übersichtlich darstellen?
Freue mich schon auf's konstruieren und erklären von Beispielen zur Syntaxeigenschaft. |
|
|
| |
|
|
| |
|
- Seite 2 - |
|
|
| Klaus Hoffmeister (16.05.15)
Ich hatte es gehofft, aber nicht unbedingt erwartet, denn derartig lästige Sonderzeichen sparendes, wirklich vereinfachendes habe ich bei den gängigen Sprachen bisher nicht gesehen. Gibt es das überhaupt schon irgendwo?
Ist mir nicht bekannt! Vlt. habe ich da ja was erfunden.
Klaus Hoffmeister (16.05.15)
Das Leerzeichen, der Space Operator ist ein intelligenter Space Seperator, ein intelligenter Trenner, ein Space-Autoseparator kurz ein Autoseparator, ein polymorpher Seperator, damit noch etwas polymorphes bei InfinityProfan.
" ... das vor den logischen Operatoren aufgelöst wird ... er kann nur von Rechts nach Links aufgelöst werden." ist ganz wichtig zum Verständnis und sollte in den Paragraphen rein.
Ok, ich schreibe das noch mit rein. Einen extra § möchte ich dafür nicht eröffnen da ich mich damit momentan schwer tue.
Klaus Hoffmeister (16.05.15)
Kann man den zugrundeliegenden Algorithmus kurz/vereinfacht/übersichtlich darstellen?
Das ist auch so eine Sache die ich nicht beherrsche. Vlt. als textalisches Struktogramm:
Solange irgendwo Freizeichen in Befehlszeile* ( parse von Freizeichenposition nach Links das Schlüsselwort, wenn gefunden dann ists eine FN? { parse komplettes Argument* nach rechts und setze es in Klammern | setze ein Komma } )
*per rekursiver Algorithmus da eine "Befehlszeile" sowie ein komplettes Argument auch ein Teilargument sein kann) |
|
|
| |
|
|
|
| iF (01.12.14)
... Var kann auch verwendet werden um den Variablentyp zurückzuerhalten. In diesem Fall ist Var als Funktion zu verwenden: a=1.1;print var(a) //gibt float aus. ...
Das funktioniert jetzt! |
|
|
| |
|
|
|
| HofK (24.02.2016)
Wenn dann irgendwann noch ein Sonderzeichen für var( ) wie °a übrigbleiben sollte - siehe Diskussion unter [...] - wäre es superzumquadrat! Seinerzeit war auch die Frage, ob man statt var(a)=="long" nur var(a)==longzu schreiben ermöglichen könnte.
Da Du die Murmel scheinbar sehr gerne magst,
habe ich die einfach mal eingebaut!
Was jedoch nicht möglich sein wird:
Syntaktisch schließt der Space-Operator Funktions-Gleichnamige Konstanten erstmal aus:
Selbst per Komma zwingen wäre hier nutzlos, da dann long() statt long, sonst ginge auch screen.width statt screen.width() nicht etc. So würde also auch $alias long "long" zu beschädigtem Queltlext führen. |
|
|
| |
|
|
|
HofK | |
|
| |
|
|
|
HofK | "Passe erstmal das Beispiel polymorphe Prozedur [...] mit °a statt var(a) usw. an."
Ist vollzogen, sieht übersichtlich aus und funktioniert prima! |
|
|
| |
|
|
|
| Achtung: Es folgen wichtige Änderungen.
Beispielsweise gibt es nachfolgend die Anweisung "var" nicht mehr, da sie nicht notwendig ist und man Variablen einfach verwenden kann ohne sie extra deklarieren zu müssen.
Deshalb auch dieses Thema heraus aus Befehlssatz hinein nach Forum verschoben. Ob dann noch eine _Funktion "var" notwendig ist - besonders wegen dem ° Sonderzeichen, ist auch fraglich. Vermutlich eher nicht.
Zudem eine wichtige Änderung:
Variablen sind immer Lokal, Prozeduren haben nur Zugriff auf per global aufgeführte Variablen.
|
|
|
| |
|
|
|
HofK | iF (28.02.2016)
Ob dann noch eine Funktion "var" notwendig ist - besonders wegen dem ° Sonderzeichen, ist auch fraglich.
Hatte kaum zu hoffen gewagt, dass es mit den per Angabe definierten Variablen etwas wird. Super! Eine var Funktion zum ermitteln des Typs ist dann sicher kontraproduktiv, schon weil man wegen des Space Operators dann auch
a = 1.5 t = var a schreiben könnte, was doch etwas "eigen" wäre, dagegen ist a = 1.5 t = °a perfekt. |
|
|
| |
|
|
|
| Hab trotzdem wieder ein Bug eingebaut,
schnell beheben - geht fast garnichts sonst. |
|
|
| |
|
|
|
HofK | Bug' s sind das Salz in in der Programmsuppe, sonst wird es noch langweilig |
|
|
| |
|
|
|
| So, bin hoffentlich nun übers Gröbste hinweg.
Toll sowas:
oder
oder hier bin stolz wie atze:
print test().inherit.0
lol.mydatas.vendor=test().vendor lol.anotherclass.attrib=test().size
print lol
wald=[ "bäume"=[ "hans" "ralf" "fred" ] "gui"=gui.grid gui.hwnd [5,5] ]
gui.theme wald.gui gui.theme.debug
print wald.bäume
//
proc test a=[ 5 6 7 ] return [ "color"=rgb 0 0 0 "size"=50 "vendor"="Yamasupa" "inherit"=a ] endproc
Kann man also Strukturen schaffen und mit ihnen um sich werfen. |
|
|
| |
|
|
|
HofK | iF (28.02.2016)
Kann man also Strukturen schaffen und mit ihnen um sich werfen.
... und Anfänger hart am Kopf damit treffen. Das Beispiel ist ein prima massives Wurfgeschoss dafür.
Aber man sieht gleich viele Möglichkeiten recht kompakt und mir bleibt Arbeit es Schritt für Schritt rüberzubringen. Quasi mit Wattebällchen werfen ist bei dem Stoff angesagt.
Freue mich drauf. ------ |
|
|
| |
|
|