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

sid burn
 2009-12-09 11:47
#129136 #129136
User since
2006-03-29
1520 Artikel
BenutzerIn

user image
Ah danke dir. Wobei man bei invert wohl sagen muss das key => value umgedreht wird und ein Array dann dabei heraus kommt.

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? Habe dazu in den testsuits den aufruf ".pick(*)" gefunden.

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?

Code: (dl )
1
2
3
4
5
6
sidburn@sid:~$ time perl6 -e '(0..500).pick(*).perl.say'
[10, 197, 174, 404, 474, 392, 111, 92, 144, 63, 297, 87, 149, 89, 352, 238, 500, 422, 284, 39, 37, 239, 236, 240, 253, 83, 48, 289, 260, 397, 129, 462, 287, 119, 373, 378, 58, 374, 47, 86, 71, 261, 246, 458, 2, 442, 376, 306, 436, 254, 431, 268, 34, 321, 467, 290, 313, 134, 176, 93, 177, 300, 460, 432, 13, 212, 216, 468, 403, 493, 389, 275, 310, 252, 28, 99, 496, 249, 291, 52, 426, 219, 121, 311, 358, 98, 12, 189, 405, 495, 35, 33, 423, 452, 248, 94, 255, 210, 444, 279, 23, 60, 304, 477, 257, 103, 463, 66, 408, 7, 137, 175, 141, 211, 399, 490, 409, 421, 116, 112, 497, 88, 38, 143, 454, 30, 184, 388, 455, 472, 109, 491, 298, 192, 441, 8, 247, 326, 395, 15, 412, 153, 173, 415, 138, 160, 76, 164, 305, 150, 420, 353, 182, 65, 457, 324, 41, 135, 387, 315, 453, 40, 357, 362, 486, 494, 294, 82, 309, 74, 429, 479, 481, 499, 152, 312, 166, 301, 6, 445, 5, 180, 334, 485, 90, 398, 314, 26, 148, 450, 386, 220, 296, 167, 190, 369, 366, 191, 170, 113, 97, 198, 209, 340, 96, 271, 85, 351, 393, 62, 18, 380, 215, 262, 126, 385, 202, 146, 19, 124, 348, 201, 203, 489, 258, 25, 183, 299, 142, 434, 371, 196, 307, 77, 267, 269, 91, 318, 69, 4, 487, 128, 469, 440, 57, 3, 347, 237, 179, 342, 172, 383, 473, 194, 346, 364, 156, 341, 322, 325, 234, 227, 204, 22, 288, 45, 95, 327, 372, 361, 31, 50, 51, 169, 482, 406, 61, 36, 218, 384, 11, 402, 168, 413, 120, 400, 443, 480, 401, 243, 355, 214, 207, 338, 285, 465, 106, 381, 79, 100, 231, 224, 466, 280, 438, 390, 328, 223, 417, 464, 433, 213, 276, 70, 370, 394, 476, 221, 350, 241, 414, 488, 136, 447, 317, 439, 115, 114, 163, 78, 266, 428, 410, 230, 295, 217, 162, 117, 363, 151, 75, 81, 335, 360, 229, 145, 263, 27, 244, 391, 449, 308, 68, 475, 456, 446, 272, 274, 165, 337, 127, 24, 55, 323, 9, 319, 64, 407, 331, 125, 416, 448, 102, 181, 332, 484, 336, 118, 343, 171, 20, 478, 56, 471, 159, 130, 1, 205, 158, 365, 273, 123, 67, 0, 470, 206, 379, 282, 133, 320, 251, 186, 281, 233, 188, 154, 32, 185, 375, 265, 354, 131, 344, 259, 427, 73, 435, 430, 242, 14, 349, 21, 226, 44, 419, 208, 157, 396, 147, 122, 42, 53, 283, 286, 72, 461, 316, 356, 333, 132, 303, 367, 140, 278, 43, 330, 49, 339, 54, 110, 483, 193, 104, 46, 292, 222, 84, 492, 329, 377, 424, 187, 161, 200, 178, 80, 425, 108, 293, 199, 359, 101, 270, 302, 105, 264, 225, 139, 107, 411, 498, 195, 228, 368, 437, 29, 451, 17, 232, 16, 382, 155, 256, 245, 459, 418, 59, 277, 250, 345, 235]

real 0m25.815s
user 0m25.114s
sys 0m0.188s


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.

Nebenbei, eine Doku wo eigentlich steht welche Klassen mit welchen Methoden implementiert sein müssen und was diese machen gibt es wohl nicht, oder?
Nicht mehr aktiv. Bei Kontakt: ICQ: 404181669 E-Mail: perl@david-raab.de

View full thread Perl 6 Adventskalender