Thread X zwischen laufzeitabhängig viele Arrays (2 answers)
Opened by Sven_123 at 2011-07-05 14:23

moritz
 2011-07-05 15:01
#150154 #150154
User since
2007-05-11
923 Artikel
HausmeisterIn
[Homepage]
user image
2011-07-05T12:24:00 Sven_123
Kurz: Ist es möglich, sämtliche 1D-Arrays, die in einem 2D-Array stehen durch ein X zu kombinieren?


Die Spezifikation fuer "lists of lists" ist noch ein bisschen schwamming, vermutlich sollte es mit sowas wie

Code: (dl )
for [X] @a>>.list -> @items { }


gehen. Tuts aber bisher noch nicht. Es gibt einen Entwicklungszweig von Rakudo, der "lists of lists" kann, aber der kann noch keinen [...] reduction meta operator. Dumm gelaufen.

Quote
Nebenbei - warum ist man in perl6 von der Unterscheidung von Arrays und Skalaren durch @ und $ abgerückt? In perl5 war einem (mir) dadurch oft viel bewusster, was eigentlich grad passiert. In perl6 ist das manchmal etwas schwammig - generell scheint es oft ganz egal, ob man ein $, oder ein @ nimmt, wenn die gespeicherte Referenz eh fast immer (gefühlsmäßig) automatisch als Array benutzt wird.


Das ist zur Zeit in Rakudo noch so, wird aber bald anders. Im oben genanten branch (und auch in niezca) haben Arrays, Listen etc. eine Methode namens .flattens, die dir sagt, ob das ganze als Liste oder Skalar angesehen wird, wenn du darueber iterierst, oder wenn du es in ein anderes Array via push() oder oder so einfuegst.

Das @ impliziert dann immer dass .flattens True liefert, und $ impliziert, dass es False liefert (wenn ich das richtig verstanden habe).

View full thread X zwischen laufzeitabhängig viele Arrays