คำถามติดแท็ก raku

สำหรับคำถามเกี่ยวกับภาษาการเขียนโปรแกรม Raku (เดิมชื่อ Perl 6)

1
ทำไม Duration.new ทำงานกับ Int แต่ไม่ได้ Rat?
สำหรับช่วงเวลาทำไมฉันต้องบีบบังคับให้หนูเป็นจริงด้วยมือ แต่ไม่ใช่ Int? นี่คือ Rakudo รุ่น 2020.01 ที่สร้างขึ้นบน MoarVM เวอร์ชัน 2020.01.1 การใช้ Perl 6.d บน OSX say $v.WHAT; #(Int) $v = Duration.new( $v ); say $v; #20 my $w = 20.0; say $w.WHAT; #(Rat) $w = Duration.new( $w.Real ); say $w; #20 my $x = 20.0; say $x.WHAT; #(Rat) $x …
9 raku 

1
การประกาศที่กำหนดเอง
สมมติว่าฉันใช้ชุดสำเร็จรูปจำนวนหนึ่งเป็นประจำ: class Foo { method abc($a: $b, $c, +@d) is pure { use Slang::Bar; … } method xyz($a: $b, $c, +@d) is pure { use Slang::Bar; … } method blarg($a: $b, $c, +@d) is pure { use Slang::Bar; … } } ฉันอยากจะบอกว่า: class Foo is/does Bar { bar abc { …
9 raku 

1
วิธีการทำรายการขององค์ประกอบ 2 รายการลงในแฮช
ฉันมีรายการขององค์ประกอบสองรายการเช่นสิ่งที่คุณจะได้รับจากการ(1..5) Z (20..24)ที่ฉันต้องการแฮช (ในตัวอย่างนี้สิ่งที่คุณได้รับโดย{1 => 20, 2 => 21, 3 => 22, 4 => 23, 5 =>24}ฉันทำได้ "ด้วยมือ" แต่นั่นไม่ใช่ ไม่หรูหราเกินไปและฉันแน่ใจว่า Raku มีวิธีการทำที่แปลก ๆ ทางเลือกที่ไม่เหมาะสมที่ฉันคิดขึ้นมาคือ: my @a = (1..5) Z (20..24); my %a; for @a -> @x { %a{@x[0]} = @x[1];
9 raku 

3
ฉันจะเผยแพร่และจับข้อผิดพลาดที่ถูกโยนในเธรดอื่นใน Raku ได้อย่างไร?
วิธีที่ดีที่สุดในการเผยแพร่ข้อผิดพลาดจากเธรดแยกต่างหากคือ (เช่น start block, Proc :: Async หรือ sub ที่ประกอบด้วยสิ่งเหล่านี้) เพียงแค่ห่อโค้ดที่หมุนเธรดใหม่ในบล็อก try / CATCH แล้วไม่ทำงานและการใช้ waitit จะใช้ได้เฉพาะขึ้นอยู่กับค่าส่งคืนของรูทีนย่อย
9 raku 


1
วิธีเลียนแบบ wc -l ใน Raku
ใน perl 5 คุณสามารถจำลองwc -lโดยใช้ oneliner: perl -lnE 'END {say $.}' test.txt วิธีการใช้งานฟังก์ชั่นนี้ใน Raku หากคุณพยายามใช้สิ่งนี้: raku -e 'say "test.txt".IO.open.lines.elems' ปรากฎว่าช้าและใช้หน่วยความจำมาก ข้อมูลสำหรับการทำซ้ำ: $ wget http://eforexcel.com/wp/wp-content/uploads/2017/07/1500000%20Sales%20Records.zip $ unzip "1500000 Sales Records.zip" $ mv "1500000 Sales Records.csv" part.txt $ for i in `seq 1 10`; do cat part.txt >> test.txt ; done $ …
9 perl  raku 

1
ลบองค์ประกอบออกจากรายการหรืออาร์เรย์โดยไม่มีสิ่งประดิษฐ์ (ใด ๆ ) ใน Raku
ฉันได้ค้นหา Raku Documentation และหนังสือ & บทช่วยสอนมากมายและโพสต์ Stackoverflow หลายโพสต์เพื่อเรียนรู้วิธีการลบรายการออกจากรายการ / อาร์เรย์อย่างหมดจดนั่นคือโดยไม่ต้องมี(ใด ๆ )แทนที่องค์ประกอบที่ถูกลบ my @s = <3 18 4 8 92 14 30>; my $item = 8; my $index = @s.first($item, :k); @s[$index]:delete; ผลลัพธ์นี้เป็น[3 18 4 (มี) 92 14 30]และดังนั้นฉันจึงไม่สามารถดำเนินการใด ๆ กับมันได้เช่นฉันไม่สามารถใช้งาน[+]ได้ มีวิธีการลบรายการออกจากรายการ / อาร์เรย์โดยที่(ใด ๆ )หรือไม่?
9 raku 

1
ฉันจะหมดเวลาสัญญาใน Raku ได้อย่างไร
ฉันรู้ว่าฉันสามารถกำหนดเวลาPromiseที่จะเก็บไว้ในระยะเวลาที่กำหนดด้วย my $promise = Promise.in($seconds); แต่ฉันจะกำหนดให้มันเสียได้อย่างไร โดยเฉพาะฉันคิดถึงสัญญาที่จะ "หมดเวลา" เพื่อให้มีเวลามากพอที่จะเก็บไว้ไม่เช่นนั้นจะล้มเหลว ฉันสามารถทำสิ่งนี้กับอีกPromiseเช่น: my $promise = Promise.new; ... Promise.in($seconds).then: { $promise.break }; แต่นี่ให้ความรู้สึกเล็กน้อย ... สิ้นเปลือง มีวิธีที่ดีกว่าในการทำเช่นนี้?
9 promise  raku 
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.