<?xml version="1.0" encoding="utf-8"?>
<!-- generator="FeedCreator 1.7.2-ppt DokuWiki" -->
<?xml-stylesheet href="http://gsys.info/lib/exe/css.php?s=feed" type="text/css"?>
<rdf:RDF
    xmlns="http://purl.org/rss/1.0/"
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
    xmlns:dc="http://purl.org/dc/elements/1.1/">
    <channel rdf:about="http://gsys.info/feed.php">
        <title>Genesys notes:op</title>
        <description></description>
        <link>http://gsys.info/</link>
        <image rdf:resource="http://gsys.info/lib/tpl/genesys/images/favicon.ico" />
       <dc:date>2026-05-01T22:45:45+02:00</dc:date>
        <items>
            <rdf:Seq>
                <rdf:li rdf:resource="http://gsys.info/doku.php?id=notes:op:arrow&amp;rev=1587466589&amp;do=diff"/>
                <rdf:li rdf:resource="http://gsys.info/doku.php?id=notes:op:as&amp;rev=1446211140&amp;do=diff"/>
                <rdf:li rdf:resource="http://gsys.info/doku.php?id=notes:op:autoref&amp;rev=1545057637&amp;do=diff"/>
                <rdf:li rdf:resource="http://gsys.info/doku.php?id=notes:op:condition&amp;rev=1432920408&amp;do=diff"/>
                <rdf:li rdf:resource="http://gsys.info/doku.php?id=notes:op:construct&amp;rev=1432920408&amp;do=diff"/>
                <rdf:li rdf:resource="http://gsys.info/doku.php?id=notes:op:definition&amp;rev=1432920408&amp;do=diff"/>
                <rdf:li rdf:resource="http://gsys.info/doku.php?id=notes:op:do&amp;rev=1483318178&amp;do=diff"/>
                <rdf:li rdf:resource="http://gsys.info/doku.php?id=notes:op:env&amp;rev=1527605946&amp;do=diff"/>
                <rdf:li rdf:resource="http://gsys.info/doku.php?id=notes:op:eq&amp;rev=1432920408&amp;do=diff"/>
                <rdf:li rdf:resource="http://gsys.info/doku.php?id=notes:op:from&amp;rev=1480094950&amp;do=diff"/>
                <rdf:li rdf:resource="http://gsys.info/doku.php?id=notes:op:guard&amp;rev=1432920408&amp;do=diff"/>
                <rdf:li rdf:resource="http://gsys.info/doku.php?id=notes:op:if&amp;rev=1614208213&amp;do=diff"/>
                <rdf:li rdf:resource="http://gsys.info/doku.php?id=notes:op:include&amp;rev=1432920408&amp;do=diff"/>
                <rdf:li rdf:resource="http://gsys.info/doku.php?id=notes:op:inequality&amp;rev=1432920408&amp;do=diff"/>
                <rdf:li rdf:resource="http://gsys.info/doku.php?id=notes:op:is&amp;rev=1487081664&amp;do=diff"/>
                <rdf:li rdf:resource="http://gsys.info/doku.php?id=notes:op:iterable&amp;rev=1432920408&amp;do=diff"/>
                <rdf:li rdf:resource="http://gsys.info/doku.php?id=notes:op:matrix&amp;rev=1564667879&amp;do=diff"/>
                <rdf:li rdf:resource="http://gsys.info/doku.php?id=notes:op:or&amp;rev=1432920408&amp;do=diff"/>
                <rdf:li rdf:resource="http://gsys.info/doku.php?id=notes:op:par&amp;rev=1475144268&amp;do=diff"/>
                <rdf:li rdf:resource="http://gsys.info/doku.php?id=notes:op:power&amp;rev=1432920408&amp;do=diff"/>
                <rdf:li rdf:resource="http://gsys.info/doku.php?id=notes:op:prefix&amp;rev=1432920408&amp;do=diff"/>
                <rdf:li rdf:resource="http://gsys.info/doku.php?id=notes:op:react&amp;rev=1537280380&amp;do=diff"/>
                <rdf:li rdf:resource="http://gsys.info/doku.php?id=notes:op:require&amp;rev=1432920408&amp;do=diff"/>
                <rdf:li rdf:resource="http://gsys.info/doku.php?id=notes:op:set&amp;rev=1612968281&amp;do=diff"/>
                <rdf:li rdf:resource="http://gsys.info/doku.php?id=notes:op:split&amp;rev=1441629922&amp;do=diff"/>
                <rdf:li rdf:resource="http://gsys.info/doku.php?id=notes:op:stringformat&amp;rev=1432920408&amp;do=diff"/>
                <rdf:li rdf:resource="http://gsys.info/doku.php?id=notes:op:switch&amp;rev=1474142744&amp;do=diff"/>
                <rdf:li rdf:resource="http://gsys.info/doku.php?id=notes:op:to&amp;rev=1446131394&amp;do=diff"/>
                <rdf:li rdf:resource="http://gsys.info/doku.php?id=notes:op:value&amp;rev=1441633046&amp;do=diff"/>
            </rdf:Seq>
        </items>
    </channel>
    <image rdf:about="http://gsys.info/lib/tpl/genesys/images/favicon.ico">
        <title>Genesys</title>
        <link>http://gsys.info/</link>
        <url>http://gsys.info/lib/tpl/genesys/images/favicon.ico</url>
    </image>
    <item rdf:about="http://gsys.info/doku.php?id=notes:op:arrow&amp;rev=1587466589&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-04-21T12:56:29+02:00</dc:date>
        <title>notes:op:arrow</title>
        <link>http://gsys.info/doku.php?id=notes:op:arrow&amp;rev=1587466589&amp;do=diff</link>
        <description>Pfeil-Operator

Den Pfeil-Operator könnte man als „as“ Operator zur Typumwandlung verwenden.

Hintergedanke

Genesys soll ja stärker auf Typen aufbauen. Wenn ich einen Vector frage, wie groß er ist, sieht die Signatur wie folgt aus:

size_type size() const;</description>
    </item>
    <item rdf:about="http://gsys.info/doku.php?id=notes:op:as&amp;rev=1446211140&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2015-10-30T14:19:00+02:00</dc:date>
        <title>notes:op:as</title>
        <link>http://gsys.info/doku.php?id=notes:op:as&amp;rev=1446211140&amp;do=diff</link>
        <description>as

as ist ein Operator, der ähnlich to eine Umwandlung anfordert. Im Unterschied zu to erlaubt, as allerdings kein Konvertierung von Daten. Der Einsatz von Rechenzeit wird hier also beschränkt auf Referenzen.

As dient vorrangig zur sichtbaren Dokumentation und kann auch durch den Punkt-Operator ersetzt werden.</description>
    </item>
    <item rdf:about="http://gsys.info/doku.php?id=notes:op:autoref&amp;rev=1545057637&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2018-12-17T15:40:37+02:00</dc:date>
        <title>notes:op:autoref</title>
        <link>http://gsys.info/doku.php?id=notes:op:autoref&amp;rev=1545057637&amp;do=diff</link>
        <description>autoref


for (int i = 6 * 4 * 5; i &gt; 0; i--)
    if( vertices[i - 1] &gt; 1.0f ) 
        vertices[i - 1] /= 200;



6*4*5 do 
  vertices[index] &gt; 1.0f
  then vertices[index] /= 200;


ist mir zu lang:
left und right können wir index oder value als Referenz auf den linken oder rechten Operanden verstanden werden.</description>
    </item>
    <item rdf:about="http://gsys.info/doku.php?id=notes:op:condition&amp;rev=1432920408&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2015-05-29T19:26:48+02:00</dc:date>
        <title>notes:op:condition</title>
        <link>http://gsys.info/doku.php?id=notes:op:condition&amp;rev=1432920408&amp;do=diff</link>
        <description>Bedingungsoperator

Der Bedingungsoperator ersetzt einerseits den ?:-Operator, gibt also als Rückgabe das Ergebnis der entsprechenden Expression zurück, kann aber auch ein einzelnes if ersetzen:


bool condition = true;

condition =&gt; print &quot;true&quot; ! print &quot;false&quot;;  // gibt 4 zurück, da &quot;true&quot; vier Zeichen lang ist.

condition =&gt; print &quot;yeah&quot;;                    // gibt true zurück, die Bedingung war wahr.
condition! =&gt; print &quot;nopes&quot;;                  // gibt false zurück, die Bedingung ist falsch…</description>
    </item>
    <item rdf:about="http://gsys.info/doku.php?id=notes:op:construct&amp;rev=1432920408&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2015-05-29T19:26:48+02:00</dc:date>
        <title>notes:op:construct</title>
        <link>http://gsys.info/doku.php?id=notes:op:construct&amp;rev=1432920408&amp;do=diff</link>
        <description>construct

Ein Konstrukt definiert ein nachgerüstetes Sprachmerkmal. Alles nachfolgende muss in der jeweiligen Funktion beschrieben werden.


construct csv( stream &amp; s )
{
  code translate( string s ) -&gt; int
  { switch( s )
    case &quot;eins&quot;: return 1;
    case &quot;zwei&quot;: return 2;
    case &quot;drei&quot;: return 3;
    case &quot;vier&quot;: return 4;
    default    : return 0;
  }
   
  StringParser p(s);
  
  p.Accept( '{' );
  
  value is string;
  result is int[];
  
  if( p.Grab( value ) )
    result += [transla…</description>
    </item>
    <item rdf:about="http://gsys.info/doku.php?id=notes:op:definition&amp;rev=1432920408&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2015-05-29T19:26:48+02:00</dc:date>
        <title>notes:op:definition</title>
        <link>http://gsys.info/doku.php?id=notes:op:definition&amp;rev=1432920408&amp;do=diff</link>
        <description>Identifier definitions

Einen Identifier kann man auf verschiedene Weise erzeugen. Zu unterscheiden sind vier Typen

	*  Gleichsetzung (alias, typedef, static const, enum, flag)
	*  Definition einer Variablen/Member
	*  Definition eines Typs mit Variablendefinition</description>
    </item>
    <item rdf:about="http://gsys.info/doku.php?id=notes:op:do&amp;rev=1483318178&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2017-01-02T01:49:38+02:00</dc:date>
        <title>notes:op:do</title>
        <link>http://gsys.info/doku.php?id=notes:op:do&amp;rev=1483318178&amp;do=diff</link>
        <description>do

do führt eine schleife durch und erwartet links eine Range, ein Integer oder etwas Iterierbares. Innerhalb der Do-Schleife werden die Werte 'index' und 'value' zur verfügung gestellt:


5 do print index + &quot;/&quot; + value $ + &quot;, &quot;;    // UMGESETZT</description>
    </item>
    <item rdf:about="http://gsys.info/doku.php?id=notes:op:env&amp;rev=1527605946&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2018-05-29T16:59:06+02:00</dc:date>
        <title>notes:op:env</title>
        <link>http://gsys.info/doku.php?id=notes:op:env&amp;rev=1527605946&amp;do=diff</link>
        <description>Zugriff auf Environment-Variablen

Environmentvariablen sind Key-Value-Pairs aus Strings. Wird der To-String-Operator ohne Variable angesprochen und folgt eine runde öffnende Klammer, so ist das Wort bis zur schließenden Klammer als String anzusehen, der den Namen einer Environment-Variablen beschreibt.</description>
    </item>
    <item rdf:about="http://gsys.info/doku.php?id=notes:op:eq&amp;rev=1432920408&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2015-05-29T19:26:48+02:00</dc:date>
        <title>notes:op:eq</title>
        <link>http://gsys.info/doku.php?id=notes:op:eq&amp;rev=1432920408&amp;do=diff</link>
        <description>Der =-Operator als Konstantendeklaration / Default-Parameter

vergleiche:


bool position( double pos, Point3d &amp; result, double length /* knows length() */ ) const;


Die Variable length kann über die Funktion length() bestimmt werden, wenn der Benutzer sie nicht kennt.
Kennt der Benutzer sie, so kann er den Aufruf vermeiden, in dem er die bekannte Länge übergibt.</description>
    </item>
    <item rdf:about="http://gsys.info/doku.php?id=notes:op:from&amp;rev=1480094950&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2016-11-25T18:29:10+02:00</dc:date>
        <title>notes:op:from</title>
        <link>http://gsys.info/doku.php?id=notes:op:from&amp;rev=1480094950&amp;do=diff</link>
        <description>From

From ist ein rückwärts gerichtetes Casting.

Ein Casting mit to oder as kann einen temporären Wert erzeugen, der an eine Funktion übergeben werden kann.

print a$;

In Fällen wie diesen hilft das aber nicht:


        virtual bool position( double pos, Point3d&amp; result ) const override;
        virtual bool position( double pos, Alignment&amp; result ) const override
        {
            Point3d temp;
            if( position( pos, temp ))
            {
                result = Alignment( temp…</description>
    </item>
    <item rdf:about="http://gsys.info/doku.php?id=notes:op:guard&amp;rev=1432920408&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2015-05-29T19:26:48+02:00</dc:date>
        <title>notes:op:guard</title>
        <link>http://gsys.info/doku.php?id=notes:op:guard&amp;rev=1432920408&amp;do=diff</link>
        <description>guard

Im Anweisungsblock entspricht es folgenden Makros


// Ist die als Argument übergebene Anweisung erfolgreich, läuft das Programm weiter.
// Ansonsten wird die Funktion abgebrochen und der Fehler als Funktionsergebnis zurückgegeben.
#define IFCASSERT( CMD ) { Ifc::Error __temperror__ = CMD; if( !__temperror__ ) return __temperror__; }

// Ist die als Argument übergebene Anweisung erfolgreich, läuft das Programm weiter.
// Ist übergebene Anweisung nicht erfolgreich, wird der übergebene Fehl…</description>
    </item>
    <item rdf:about="http://gsys.info/doku.php?id=notes:op:if&amp;rev=1614208213&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-02-25T00:10:13+02:00</dc:date>
        <title>notes:op:if</title>
        <link>http://gsys.info/doku.php?id=notes:op:if&amp;rev=1614208213&amp;do=diff</link>
        <description>if

if wird über die Operatoren then und else abgebildet:


a == 1
  then print &quot;a ist 1\n&quot;;
  else print &quot;a ist nicht 1\n&quot;;


then und else geben den Wert zurück, der hinter ihrem Ausdruck steht:


v = a == 1 then 4711 else func();


Hier müssen then und else den gleichen Typ zurückgeben.</description>
    </item>
    <item rdf:about="http://gsys.info/doku.php?id=notes:op:include&amp;rev=1432920408&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2015-05-29T19:26:48+02:00</dc:date>
        <title>notes:op:include</title>
        <link>http://gsys.info/doku.php?id=notes:op:include&amp;rev=1432920408&amp;do=diff</link>
        <description>include

include öffnet eine Datei zum lesen und liefert ein io-Objekt zurück.

Findet sich dieses io-Objekt innerhalb der Parser-Funktion einer Operatorliste als Anweisung, so wird die Datei als Quelltext aufgefasst und im gleichen Enviroment gelesen.</description>
    </item>
    <item rdf:about="http://gsys.info/doku.php?id=notes:op:inequality&amp;rev=1432920408&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2015-05-29T19:26:48+02:00</dc:date>
        <title>notes:op:inequality</title>
        <link>http://gsys.info/doku.php?id=notes:op:inequality&amp;rev=1432920408&amp;do=diff</link>
        <description>Ungleichheit

sollte mit &lt;&gt; ausgedrückt werden, ==! sollte nur als logische Konsequenz zur Verfügung stehen, aber eventuell verwarnt werden.</description>
    </item>
    <item rdf:about="http://gsys.info/doku.php?id=notes:op:is&amp;rev=1487081664&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2017-02-14T15:14:24+02:00</dc:date>
        <title>notes:op:is</title>
        <link>http://gsys.info/doku.php?id=notes:op:is&amp;rev=1487081664&amp;do=diff</link>
        <description>is

is beschreibt eine Ableitung. Es entsteht ein gleichwertiger Typ mit gleichnamiger Variable.


intdi is implicit int; // intd-erived implicit
intdi : construct(4);  // Variable intdi wird ein Objekt zugewiesen, dass mit intdi::construct( int ) erstellt wird.
intdi : intdi\(4);     //  &quot;   &quot;   &quot;
intdi : 5 as inetdi\;  //  &quot;   &quot;   &quot;
intdi : 4;             // ok, ist implicit.

func1 is code( intdi ) = intd;        // Es kommt eine Variable, die den Typ intdi\ haben muss und die lokal intdi gen…</description>
    </item>
    <item rdf:about="http://gsys.info/doku.php?id=notes:op:iterable&amp;rev=1432920408&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2015-05-29T19:26:48+02:00</dc:date>
        <title>notes:op:iterable</title>
        <link>http://gsys.info/doku.php?id=notes:op:iterable&amp;rev=1432920408&amp;do=diff</link>
        <description>Iterable

ist ein Interface, dass aus den Operatoren [first [tail]] und #.
[first [tail]] gibt einen Iterator auf das erste Element, wie auf das nachfolgende Element aus (was als Liste verstanden werden darf).
# liefert bei einem Container die Anzahl der Elemente
Der Iterator muss den ++ Operator implementiert haben.</description>
    </item>
    <item rdf:about="http://gsys.info/doku.php?id=notes:op:matrix&amp;rev=1564667879&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2019-08-01T15:57:59+02:00</dc:date>
        <title>notes:op:matrix</title>
        <link>http://gsys.info/doku.php?id=notes:op:matrix&amp;rev=1564667879&amp;do=diff</link>
        <description>Entscheidungsmatrizen

Folgender Code fragt Dinge wiederholt ab:


          Surroundings( Image &amp; img, size_t x, size_t y )
            {
#define look( cond, x, y ) ( cond ) ? img.getIntensity( (x), (y) ) != 0 : 0; 

                if ( x &lt; img.width() &amp;&amp; y &lt; img.height )
                {
                    In = img.getIntensity( x, y );

                    if ( x &gt; 0 )
                    {
                        TopLeft = look( y &gt; 0, x - 1, y-1 );
                        Left = img.getI…</description>
    </item>
    <item rdf:about="http://gsys.info/doku.php?id=notes:op:or&amp;rev=1432920408&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2015-05-29T19:26:48+02:00</dc:date>
        <title>notes:op:or</title>
        <link>http://gsys.info/doku.php?id=notes:op:or&amp;rev=1432920408&amp;do=diff</link>
        <description>or


prgDir = getEnv(&quot;ProgramFiles(x86)&quot;) or getEnv(&quot;ProgramFiles&quot;)


Man könnte überlegen, ob || die Aufgabe übernimmt, oder ob || einen nur True oder False zurückliefert.</description>
    </item>
    <item rdf:about="http://gsys.info/doku.php?id=notes:op:par&amp;rev=1475144268&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2016-09-29T12:17:48+02:00</dc:date>
        <title>notes:op:par</title>
        <link>http://gsys.info/doku.php?id=notes:op:par&amp;rev=1475144268&amp;do=diff</link>
        <description>Parallelität


&gt; fib c = (fib c-1) `par` (fib c-2)

 Das par macht hier aber keinen Sinn, da dort erstmal ein Plus stehen
 sollte. ;)

 Aber die Sache ist durchaus überlegenswert, da ein Future erstmal
 zu einem Future werden muss.

 In einer Shell bedeutet &quot;Im Hintergrund&quot; der Operator &amp;.

 Das wäre also
 fib(c) = fib(c-1) + (fib(c-2)&amp;)

 Bleibt die Frage, wie man Parallelität am schönsten kleinklopft, da
 &quot;&amp;&quot; bei mir besetzt ist. Welches Symbol könnte denn Parallelität
 symbolisieren?

 Amüsan…</description>
    </item>
    <item rdf:about="http://gsys.info/doku.php?id=notes:op:power&amp;rev=1432920408&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2015-05-29T19:26:48+02:00</dc:date>
        <title>notes:op:power</title>
        <link>http://gsys.info/doku.php?id=notes:op:power&amp;rev=1432920408&amp;do=diff</link>
        <description>Potenzierungs-Operator

Ein Potenz-Operator in der Form ** sollte möglich sein, da die Dereferenzierung über Pointer# stattfindet, somit Verwechslungen ausgeschlossen sind.

A = Pi * r**2;

Die Potenz über 

A = Pi * r^2;

darzustellen wäre natürlich noch schöner.</description>
    </item>
    <item rdf:about="http://gsys.info/doku.php?id=notes:op:prefix&amp;rev=1432920408&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2015-05-29T19:26:48+02:00</dc:date>
        <title>notes:op:prefix</title>
        <link>http://gsys.info/doku.php?id=notes:op:prefix&amp;rev=1432920408&amp;do=diff</link>
        <description>Prefix-Schreibweise für Listen/Arrays

Wiederholbare Operatoren können über Listen, Arrays und Mengen hinweggeführt werden. Der operator wird dabei wie eine Funktion mit beliebig fielen Argumenten gerufen:


a is +( 1, 2, 3 );  // int(6)
b is +([ 1, 2, 3 ]);  // int(6)
c is [1, 2, 3];     // int[] [1, 2, 3]
d is +(c);             // int(6)</description>
    </item>
    <item rdf:about="http://gsys.info/doku.php?id=notes:op:react&amp;rev=1537280380&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2018-09-18T16:19:40+02:00</dc:date>
        <title>notes:op:react</title>
        <link>http://gsys.info/doku.php?id=notes:op:react&amp;rev=1537280380&amp;do=diff</link>
        <description>react

Arbeit erstmal ähnlich wie do. Im Gegenzug zu do greift react nicht auf die Iteratoren zurück, sondern subscribed einen Container oder Datenstrom. Ein Observable kann ein Array oder eine Liste sein, aber auch eine Netzwerkverbindung, eine Datei oder ein Timer.</description>
    </item>
    <item rdf:about="http://gsys.info/doku.php?id=notes:op:require&amp;rev=1432920408&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2015-05-29T19:26:48+02:00</dc:date>
        <title>notes:op:require</title>
        <link>http://gsys.info/doku.php?id=notes:op:require&amp;rev=1432920408&amp;do=diff</link>
        <description>require

require arbeitet im Gegensatz zu include nicht ausschließlich auf der Festplatte und findet es die Dateien nicht, so versucht es auf anfrage an den Compiler, die Headerdateien aus dem Netz zu lasden.

require de.xsd.bitmap;

Zunächst wird versucht, die Dateien in den User-Pfaden (. und angegebene) zu finden. Findet der Compiler die Datei dort nicht, so versucht er es im Download-Pfad (~/sys/genesys/require). Gibt es sie dort nicht, sucht er im Standard-Pfad (/usr/share/genesys/require).…</description>
    </item>
    <item rdf:about="http://gsys.info/doku.php?id=notes:op:set&amp;rev=1612968281&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-02-10T15:44:41+02:00</dc:date>
        <title>notes:op:set</title>
        <link>http://gsys.info/doku.php?id=notes:op:set&amp;rev=1612968281&amp;do=diff</link>
        <description>Existiert in
a in { 1, 2, 3, 4 } &lt;==&gt; a ==1 || a == 2 || a == 3 || a == 4

Teilmenge:
{ 0, 1, 2 } in { 1, 2, 3, 4 } =&gt; false 
{ 1, 2 } in { 1, 2, 3, 4 } =&gt; true 

Leere Menge
{}

Schnittmenge
{ 0, 1, 2 } in { 1, 2, 3, 4 } =&gt; { 1, 2 }

Vereinigung
{ 1, 2 } &amp; { 2, 3, 4 } =&gt; { 1, 2, 3, 4 }

Gleichheit:
{ 1, 2 } == { 3, 4 } =&gt; false

Differenz ( A \ B )
{ 1, 2, 3 } - { 2 } =&gt; { 1, 3 }
{ {1, 2, 3 } do value &amp; { 2 } yield value; }
{ {1, 2, 3 } yield value &amp; { 2 }; }

Symmetrische Differenz: (entweder …</description>
    </item>
    <item rdf:about="http://gsys.info/doku.php?id=notes:op:split&amp;rev=1441629922&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2015-09-07T14:45:22+02:00</dc:date>
        <title>notes:op:split</title>
        <link>http://gsys.info/doku.php?id=notes:op:split&amp;rev=1441629922&amp;do=diff</link>
        <description>Split

Die Splitanweisung '/' kann auf Arrays und Listen durchgeführt werden.


&quot;1,2,3&quot; / &quot;,&quot;


Das Ergebnis ist eine Liste mit Zeigern auf das jeweilige Startelement: [&amp;„1,2,3“, &amp;„2,3“, &amp;„3“]. Es werden keine neuen Elemente dafür erzeugt.</description>
    </item>
    <item rdf:about="http://gsys.info/doku.php?id=notes:op:stringformat&amp;rev=1432920408&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2015-05-29T19:26:48+02:00</dc:date>
        <title>notes:op:stringformat</title>
        <link>http://gsys.info/doku.php?id=notes:op:stringformat&amp;rev=1432920408&amp;do=diff</link>
        <description>Strings formatieren

Aus Python:


STRING = &quot;This is %(foo)s, and this is also %(foo)s&quot;
print STRING % {&quot;foo&quot;: &quot;BAR&quot;}



STRING = &quot;This is %(0)s, and this is also %(0)s&quot;
print STRING % &quot;BAR&quot;



STRING = &quot;%s %s&quot;
print STRING % (&quot;Hello&quot;, &quot;World&quot;)



STRING = &quot;%s %s&quot;
print STRING % (&quot;Hello&quot;, &quot;World&quot;)</description>
    </item>
    <item rdf:about="http://gsys.info/doku.php?id=notes:op:switch&amp;rev=1474142744&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2016-09-17T22:05:44+02:00</dc:date>
        <title>notes:op:switch</title>
        <link>http://gsys.info/doku.php?id=notes:op:switch&amp;rev=1474142744&amp;do=diff</link>
        <description>switch

Switch sollte Reichweiten abdecken können:


c is char;


switch ( c )
{
  case 'a'..'z': printf( &quot;Kleiner Buchstabe\n&quot; );
  case '1'..'9', '0': printf( &quot;Zahl\n&quot; );
};</description>
    </item>
    <item rdf:about="http://gsys.info/doku.php?id=notes:op:to&amp;rev=1446131394&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2015-10-29T16:09:54+02:00</dc:date>
        <title>notes:op:to</title>
        <link>http://gsys.info/doku.php?id=notes:op:to&amp;rev=1446131394&amp;do=diff</link>
        <description>to

Der to-Operator beschreibt ein gewünschtes Casting, wenn dies erforderlich ist oder dient zur Dokumentation.

to erlaubt eine explizite Umwandlung, auch wenn diese Rechenzeit kostet. Siehe auch as, welcher lediglich als Getter fungiert. (Siehe unten)</description>
    </item>
    <item rdf:about="http://gsys.info/doku.php?id=notes:op:value&amp;rev=1441633046&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2015-09-07T15:37:26+02:00</dc:date>
        <title>notes:op:value</title>
        <link>http://gsys.info/doku.php?id=notes:op:value&amp;rev=1441633046&amp;do=diff</link>
        <description>#-Operator, Pointer und validate

Der Value-Operator liefert eine Referenz auf den Speicher, auf den der Pointer zeigt. Das ist die Standardimplementation für einen Pointer-Typ.


d is 3,1415;
dp is ptr(d); // =&gt; double ptr; - dp ist gesetzt

dp# : 4711.;  //ok, da dp garantiert gesetzt ist.</description>
    </item>
</rdf:RDF>
