Thread Perl 6 Adventskalender (22 answers)
Opened by moritz at 2009-12-01 23:59

moritz
 2009-12-09 12:40
#129137 #129137
User since
2007-05-11
923 Artikel
HausmeisterIn
[Homepage]
user image
2009-12-09T10:47:21 sid burn
Noch ein anderer Punkt. Ist die annahme richtig das ".pick()" zwei dinge macht. Eine bestimmte Anzahl von Elementen aus einem Array lesen und sich dabei keins wiederholt, und damit ebenso zum "shuffeln" eines Array dient?


Richtig. Also .pick(2) waehlt zufaellig 2 verschiedene elemente, .pick(*) shuffled.

Mit .pick(2, :replace) kannst du angeben, dass ein Element auch wiederholt werden darf.

Quote
Ich frage weil die Performance der Aktion mich etwas schockiert. Zwischen 20-30 Sekunden um ein 500 Elementiges array zu shuffeln. Oder baut es Intern alle Permutation oder sowas auf, und man kann auf jede zugreifen?


Nein, es ist einfach nur recht naiv und allgemein implementiert. Siehe hier.

Ein Spezialfall fuer pick(*), der ein ordentliches Fisher-Yates-Shuffle macht wuerde sicher bei der Performance helfen.

Hey, willst du nicht einen Patch dafuer schreiben? Ist in Perl 6 geschrieben, du brauchst also kein ekliges PIR oder so dafuer :-)


Quote
Wäre vielleicht ein eigener Thread besser für solche "mini" fragen besser? ich denke für alles einen eigenen thread machen wäre wohl zu viel.


Sure, fange einfach einen an.

Quote
Nebenbei, eine Doku wo eigentlich steht welche Klassen mit welchen Methoden implementiert sein müssen und was diese machen gibt es wohl nicht, oder?


Es gibt in den S32-* Synopsis ein wenig Dokumentation, die aber nicht alle up-to-date ist.

View full thread Perl 6 Adventskalender