<?xml version="1.0" encoding="utf-8" ?>
<rss version="2.0"
   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
   xmlns:admin="http://webns.net/mvcb/"
   xmlns:dc="http://purl.org/dc/elements/1.1/"
   xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
   xmlns:wfw="http://wellformedweb.org/CommentAPI/"
   xmlns:content="http://purl.org/rss/1.0/modules/content/"
   >
<channel>
    <title>Die zweitschönste Nebensache der Welt (Artikel mit Tag apl grundfunktionen)</title>
    <link>http://www.aplblog.de/</link>
    <description>Über APL und andere gute Dinge</description>
    <dc:language>de</dc:language>
    
    <generator>Serendipity 0.9.1 - http://www.s9y.org/</generator>
    <pubDate>Sun, 06 Jan 2008 13:44:59 GMT</pubDate>

    <image>
        <url>http://www.aplblog.de/templates/default/img/s9y_banner_small.png</url>
        <title>RSS: Die zweitschönste Nebensache der Welt - Über APL und andere gute Dinge</title>
        <link>http://www.aplblog.de/</link>
        <width>100</width>
        <height>21</height>
    </image>
<item>
    <title>Nicht mein eigen ...</title>
    <link>http://www.aplblog.de/archives/288-Nicht-mein-eigen-....html</link>
<category>APL</category>    <comments>http://www.aplblog.de/archives/288-Nicht-mein-eigen-....html#comments</comments>
    <wfw:comment>http://www.aplblog.de/wfwcomment.php?cid=288</wfw:comment>
    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://www.aplblog.de/rss.php?version=2.0&amp;type=comments&amp;cid=288</wfw:commentRss>
    <author>nospam@example.com (Axel Holzmüller)</author>
    <content:encoded>
... war die Idee &lt;a href=&quot;http://aplblog.de/archives/282-Wenn-ich-....html&quot;  title=&quot;Nur ein Traum&quot;&gt;UNIQUE zur APL-Grundfunktion&lt;/a&gt; zu erheben. Dies war schon im APL2 IUP der Fall. Aber nicht nur dort:&lt;br /&gt;
&lt;br /&gt;
Vor mehr als einem Jahr, mit &lt;a href=&quot;http://aplblog.de/archives/113-Einzigartig.html&quot;  title=&quot;Eine Tasse für APL+Win&quot;&gt;Version 6.2&lt;/a&gt;, wurde der Sprachumfang von APL-Win um eine Unique-Funktion erweitert. Ich fand das und finde das immer noch nachahmenswürdig.&lt;br /&gt;
&lt;br /&gt;
Beide APL implementieren ein &quot;Unique&quot;,  die jeweiligen Funktionen unterscheiden sich allerdings in einem wesentlichen Punkt:&lt;br /&gt;
&lt;br /&gt;
Das Ergebnis des APL2 IUP &quot;Unique&quot; ist eine boolesche Maske, mit der das jeweils erste Auftreten der unterschiedlichen Elemente einer APL-Struktur markiert wird. Mit der hiermit definierten Funktion ∩ gilt dann für Vektoren x &lt;br /&gt;
&lt;br /&gt;
&lt;font color=&quot;#0000ff&quot;&gt;&lt;pre class=&quot;serendipity_apl_font&quot;&gt;(∩x) ≡ (x⍳x)=⍳⍴x&lt;/pre&gt;&lt;/font&gt;&lt;br /&gt;
Das Ergebnis des APL+Win &quot;Unique&quot; enthält die verschiedene Elemente eines Vektor jeweils einmal in der Reihenfolge ihres Auftretens im vorgegebenen Vektor, also &lt;br /&gt;
&lt;br /&gt;
&lt;font color=&quot;#0000ff&quot;&gt;&lt;pre class=&quot;serendipity_apl_font&quot;&gt;(∪x) ≡ ((x⍳x)=⍳⍴x)/x&lt;/pre&gt;&lt;/font&gt;&lt;br /&gt;&lt;a href=&quot;http://www.aplblog.de/archives/288-guid.html#extended&quot;&gt;&quot;Nicht mein eigen ...&quot; vollständig lesen&lt;/a&gt;    </content:encoded>
                
    <pubDate>Sat, 05 Jan 2008 17:23:26 +0100</pubDate>
    <guid isPermaLink="false">http://www.aplblog.de/archives/288-guid.html</guid>
    <category>apl</category>
<category>apl grundfunktionen</category>
<category>apl+win</category>
<category>apl2</category>
<category>unique</category>
</item>
<item>
    <title>Wenn ich ...</title>
    <link>http://www.aplblog.de/archives/282-Wenn-ich-....html</link>
<category>APL2</category>    <comments>http://www.aplblog.de/archives/282-Wenn-ich-....html#comments</comments>
    <wfw:comment>http://www.aplblog.de/wfwcomment.php?cid=282</wfw:comment>
    <slash:comments>2</slash:comments>
    <wfw:commentRss>http://www.aplblog.de/rss.php?version=2.0&amp;type=comments&amp;cid=282</wfw:commentRss>
    <author>nospam@example.com (Axel Holzmüller)</author>
    <content:encoded>
... mir etwas von IBM zu Weihnachten hätte wünschen dürfen (mit ernsthafter Aussicht auf Erfüllung), hätte ich sicher &quot;&lt;a href=&quot;http://aplblog.de/archives/281-Einzigartig.html&quot;  title=&quot;Einzigartig&quot;&gt;Unique&lt;/a&gt;&quot; als APL2-Grundfunktion auf dem Wunschzettel notiert. Ich bin der festen Überzeugung, dass das gleichnamige Idiom ein eigenes Symbol verdient hätte - nicht nur, weil ich mein &lt;a href=&quot;http://aplblog.de/archives/281-Einzigartig.html&quot;  title=&quot;Einzigartig&quot;&gt;∆UNIQUE&lt;/a&gt; so häufig einsetze.&lt;br /&gt;
&lt;br /&gt;
Allerdings darf ich diese Idee nicht mein eigen nennen:&lt;br /&gt;
&lt;br /&gt;
Es war einmal das APL2 &quot;Installed User Program&quot;, sozusagen die APL2 Version 0.5, ein voll funktionsfähiges APL2 für den Mainframe der frühen 80er, mit dem IBM die Akzeptanz der vielen Neuerungen gegenüber dem guten, alten VSAPL durch den geneigten APL-Kunden testen wollte. Dieses APL2 IUP realisierte &quot;Unique&quot; als monadische Grundfunktion mit dem Symbol ∩. Unter Shift-C ist dieses Zeichen heute noch mit gängigen APL2-Tastaturen erreichbar, aber leider nahezu nutzlos.&lt;br /&gt;
&lt;br /&gt;
Ich finde, diesem armen, vergessenen Symbol sollte wieder Leben eingehaucht werden!&lt;br /&gt;
&lt;br /&gt;
Auf welche Weise, lässt sich im APL2 IUP Language Manual nachlesen (gut, wenn man es im Regal stehen hat):&lt;br /&gt;&lt;a href=&quot;http://www.aplblog.de/archives/282-guid.html#extended&quot;&gt;&quot;Wenn ich ...&quot; vollständig lesen&lt;/a&gt;    </content:encoded>
                
    <pubDate>Wed, 02 Jan 2008 23:18:03 +0100</pubDate>
    <guid isPermaLink="false">http://www.aplblog.de/archives/282-guid.html</guid>
    <category>apl</category>
<category>apl grundfunktionen</category>
<category>apl2</category>
<category>unique</category>
</item>
<item>
    <title>Einzigartig</title>
    <link>http://www.aplblog.de/archives/281-Einzigartig.html</link>
<category>APL2</category>    <comments>http://www.aplblog.de/archives/281-Einzigartig.html#comments</comments>
    <wfw:comment>http://www.aplblog.de/wfwcomment.php?cid=281</wfw:comment>
    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://www.aplblog.de/rss.php?version=2.0&amp;type=comments&amp;cid=281</wfw:commentRss>
    <author>nospam@example.com (Axel Holzmüller)</author>
    <content:encoded>
Um aus einer Liste beliebiger Elemente alle unterschiedlichen zu ermitteln gibt es seit APL-Gedenken das Unique-Idiom: VauiotaVauistgleichiotarhovaucompressvau (ohne explizite Nennung der Klammern). Seit APL2 können damit auch z.B. aus einer Liste von Namen der jeweils zuerst auftretende extrahiert werden. &lt;br /&gt;
&lt;br /&gt;
Nun gibt es zu diesem Idiom mindestens eine Alternative: Sortiere alle Elemente des Vektors, untersuche paarweise jeweils aufeinanderfolgende Elemente auf Ungleichheit und reduzierte mit dem Ergebnis die ursprüngliche Liste. Angewandt auf Listen von Zeichenkette hielt ich diese Schreibweise in Sachen Performance für konkurrenzfähig zu UNIQUE - allerdings nur auf dem PC.&lt;br /&gt;
&lt;br /&gt;
Denn auf dem Mainframe wird UNIQUE als Idiom erkannt und als Ganzes ausgeführt. Klar, dass dies deutliche Vorteile gegenüber Alternativen ergibt, dafür gibt es die Idiomerkennung schließlich.&lt;br /&gt;
&lt;br /&gt;
Soweit ich weiß, gibt es sie nicht auf der Workstation Plattform. Also habe ich mal UNIQUE gegen die beschriebene Alternative gemessen und war überrascht:&lt;br /&gt;&lt;a href=&quot;http://www.aplblog.de/archives/281-guid.html#extended&quot;&gt;&quot;Einzigartig&quot; vollständig lesen&lt;/a&gt;    </content:encoded>
                
    <pubDate>Wed, 29 Aug 2007 13:53:15 +0200</pubDate>
    <guid isPermaLink="false">http://www.aplblog.de/archives/281-guid.html</guid>
    <category>apl grundfunktionen</category>
<category>apl2</category>
<category>performance</category>
<category>unique</category>
</item>
<item>
    <title>Einzigartig</title>
    <link>http://www.aplblog.de/archives/113-Einzigartig.html</link>
<category>APL+</category>    <comments>http://www.aplblog.de/archives/113-Einzigartig.html#comments</comments>
    <wfw:comment>http://www.aplblog.de/wfwcomment.php?cid=113</wfw:comment>
    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://www.aplblog.de/rss.php?version=2.0&amp;type=comments&amp;cid=113</wfw:commentRss>
    <author>nospam@example.com (Axel Holzmüller)</author>
    <content:encoded>
APL+Win hat mit der &lt;a href=&quot;http://aplblog.de/archives/112-APL+Win-6.2-ist-da.html&quot;  title=&quot;APL+Win 6.2 ist da&quot;&gt;Version 6.2&lt;/a&gt; eine neue Grundfunktion spendiert bekommen: UNIQUE. Damit einher geht auch die Notwendigkeit für die Belegung eines Symbols. Das ist typisch für APL. Es ist nicht gerade überraschend, dass für UNIQUE &quot;Cup&quot; &amp;#x222A; gewählt wurde.&lt;br /&gt;
&lt;br /&gt;
Syntaktisch ist &amp;#x222A;x äquivalent zum Unique-Idiom:&lt;br /&gt;
&lt;br /&gt;
&lt;pre class=&quot;serendipity_apl_font&quot;&gt;((x&amp;#9075;x)=&amp;#9075;&amp;#9076;x)/x&lt;/pre&gt;&lt;br /&gt;
Also: rechtes Argument ist ein beliebiger Vektor. Das Ergebnis ist wiederum stets ein Vektor, der alle unterschiedlichen Element des rechten Arguments enthält in der Reihenfolge ihres ersten Auftretens.&lt;br /&gt;
&lt;br /&gt;
Die Implementierung von UNIQUE scheint keine Performance-Vorteile im Vergleich zum Idiom zu bringen. Der Vorteil der Nutzung liegt also alleine in der bequemeren Schreibweise.&lt;br /&gt;
&lt;br /&gt;
Ich halte das für ausreichend, um &amp;#x222A; statt des Idioms zu nutzen.&lt;br /&gt;
&lt;br /&gt;
Sowohl UNIQUE als auch das Idiom sind vergleichsweise sehr langsam für Floating Point Argumente. Das liegt wohl daran, dass hier jeweils zur Bestimmung von Gleichheit &amp;#9109;ct herangezogen werden muss.&lt;p&gt;    </content:encoded>
                
    <pubDate>Tue, 18 Jul 2006 15:06:38 +0200</pubDate>
    <guid isPermaLink="false">http://www.aplblog.de/archives/113-guid.html</guid>
    <category>apl</category>
<category>apl grundfunktionen</category>
<category>apl+win</category>
<category>unique</category>
</item>
<item>
    <title>APL+Win 6.2 ist da</title>
    <link>http://www.aplblog.de/archives/112-APL+Win-6.2-ist-da.html</link>
<category>APL+</category>    <comments>http://www.aplblog.de/archives/112-APL+Win-6.2-ist-da.html#comments</comments>
    <wfw:comment>http://www.aplblog.de/wfwcomment.php?cid=112</wfw:comment>
    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://www.aplblog.de/rss.php?version=2.0&amp;type=comments&amp;cid=112</wfw:commentRss>
    <author>nospam@example.com (Axel Holzmüller)</author>
    <content:encoded>
Kaum ist die &lt;a href=&quot;http://aplblog.de/archives/62-APL+Win-6.0-ist-da.html&quot;  title=&quot;APL+Win 6.0 ist da&quot;&gt;Version 6.0&lt;/a&gt; raus und verfügbar, schon gibt es ein Upgrade. Das ist gut und nicht schlecht. Denn die Version 6.2 enthält einige interessante Neuerungen und Erweiterungen.&lt;br /&gt;
&lt;br /&gt;
APL+Win 6.2 ist verfügbar für Kunden mit einer APL+Win 6.0 &quot;Subscription&quot;, das ist eine Lizenz zum Upgraden. Eine Vollversion soll demnächst angeboten werden.&lt;br /&gt;
&lt;br /&gt;
Die erste Neuerung ist die &lt;font style=&quot;color:black;background-color:#ffff66&quot;&gt;UNIQUE&lt;/font&gt;-Grundfunktion. Für mich eine freudige Überraschung. Das ist eine sehr nützliche Spracherweiterung!&lt;br /&gt;
&lt;br /&gt;
Wie die neue Grundfunktion aussieht und wie sie funktioniert lässt sich aus der Ankündigung nicht ersehen. Genauso wenig wie Details zu den weiteren neuen Features:&lt;blockquote&gt;&lt;li&gt;&quot;The implementation of &amp;#9109;FX for &amp;#9109;MOM object system objects.&lt;br /&gt;
&lt;br /&gt;
&lt;li&gt;The new &quot;)OUTPUT STRICT&quot; state that only produces &quot;IMPLICIT OUTPUT&quot;&lt;br /&gt;
errors when visible output is generated.&lt;br /&gt;
&lt;br /&gt;
&lt;li&gt;The new Zip class for &amp;#9109;wi that will allow zipping and unzipping of files.&lt;br /&gt;
&lt;br /&gt;
&lt;li&gt;The new Session Manager printer margin settings.&quot;&lt;/li&gt;&lt;/ul&gt;&lt;/blockquote&gt;Spannend und bestimmt nützlich ist auch die Unterstützung für zip.&lt;br /&gt;
&lt;br /&gt;
Also werde ich auf 6.2 upgraden.&lt;br /&gt;
&lt;br /&gt;
Wohl dem, der eine &quot;Subscription&quot; hat.&lt;p&gt;    </content:encoded>
                
    <pubDate>Tue, 18 Jul 2006 11:50:29 +0200</pubDate>
    <guid isPermaLink="false">http://www.aplblog.de/archives/112-guid.html</guid>
    <category>apl grundfunktionen</category>
<category>apl+win</category>
<category>unique</category>
</item>
</channel>
</rss>
