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

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

2
จะส่งพารามิเตอร์ไปยังโทเค็นที่อ้างอิงโดยตัวแปรได้อย่างไร
ฉันสามารถใช้ลายเซ็นโทเค็นได้อย่างง่ายดายโดยใช้ชื่อโทเค็นโดยตรง: my token t ( $x ) { $x }; 'axb' ~~ / 'a' <t: 'x'> 'b' /; # match 'axb' ~~ / 'a' <t( 'x' )> 'b' /; # match อย่างไรก็ตามฉันไม่พบวิธีการทำเช่นนี้เมื่อโทเค็นถูกเก็บในตัวแปร: my $t = token ( $x ) { $x }; 'axb' ~~ / 'a' <$t: 'x'> 'b' /; …
10 raku 

1
ทำไม Raku ถึงทำงานได้แย่มากกับอาเรย์หลายมิติ
ฉันสงสัยว่าทำไม Raku ถึงทำงานได้แย่มากในการจัดการกับอาร์เรย์หลายมิติ ฉันได้ทำการทดสอบอย่างรวดเร็วเพื่อเริ่มต้นเมทริกซ์ 2 มิติใน Python, C # และ Raku และเวลาที่ผ่านไปนั้นสูงอย่างน่าประหลาดใจในภายหลัง สำหรับ Raku my @grid[4000;4000] = [[0 xx 4000] xx 4000]; # Elapsed time 42 seconds !! สำหรับงูหลาม table= [ [ 0 for i in range(4000) ] for j in range(4000) ] # Elapsed time 0.51 seconds ค# int …
10 performance  raku 

2
แยกแยะระหว่างข้อยกเว้นและความล้มเหลวในบล็อกจับ [RAKU]
เรารู้ว่าสามารถจัดการความล้มเหลวได้โดยบล็อกการจับ ในตัวอย่างต่อไปนี้เราสร้างความล้มเหลว 'AdHoc' (ใน other-sub) และเราจัดการข้อยกเว้นในบล็อก CATCH (ใน my-sub) sub my-sub { try { CATCH { when X::AdHoc { say 'AdHoc Exception handled here'; .resume } default {say 'Other Exception'; .resume} } my $b = other-sub(); $b.so ?? $b.say !! 'This was a Failure'.say; } } sub other-sub { fail …

1
สามารถส่งออกชุดย่อยใน Raku ได้หรือไม่
ฉันต้องการกำหนดชุดย่อยสองสามชุดที่ฉันเพิ่มข้อ จำกัด บางประการและdieคำสั่งบางอย่างสำหรับข้อความแสดงข้อผิดพลาดที่มีประโยชน์ ฉันไม่ต้องการกำหนดไว้ที่ด้านบนของโมดูลที่ใช้ชุดย่อยเหล่านั้นและต้องการวางไว้ในโมดูลอื่นในขณะที่ทำไปโดยใช้ชื่อที่ผ่านการรับรอง (FQNs) ตัวอย่างเช่นฉันมี unit module Long::Module::Subsets; subset PosInt where ($_ ~~ Int || "The value must be an integer") && ($_ > 0 || "The value must be greater than 0") is export ; # other subsets ... แต่ได้ ===SORRY!=== Error while compiling /tmp/637321813/main.pl6 Two terms in …
9 module  subset  raku 

3
Raku rebless ไม่ทำงานกับคลาสที่สืบทอดมาอีกต่อไป
รหัสที่ให้ในเธรดนี้ใช้งานไม่ได้อีกต่อไป: ฉันจะลบวัตถุใน Perl 6 ได้อย่างไร? ฉันเขียนโค้ดชิ้นนี้เมื่อปีที่แล้วและมันก็ใช้ได้แล้ว ตอนนี้มันไม่ได้: class Person { ; } class Woman is Person { ; } my $tom = Person.new; my $lisa = Woman.new; say $tom.^name; # -> Person say $lisa.^name; # -> Woman Metamodel::Primitives.rebless($tom, Woman); # -> New type Woman for Person is not a mixin …
9 raku 

2
การคำนวณหมายเลข e โดยใช้ Raku
ฉันพยายามคำนวณค่าคงที่e ( หมายเลข AKA Euler's ) โดยการคำนวณสูตร เพื่อที่จะคำนวณแฟคทอเรียลและการหารในนัดเดียวฉันเขียนสิ่งนี้: my @e = 1, { state $a=1; 1 / ($_ * $a++) } ... *; say reduce * + * , @e[^10]; แต่มันก็ไม่ได้ผล ทำอย่างไรให้ถูกต้อง?


1
การหยุดไวยากรณ์ Raku ที่ EOS (End of String)
ในกระบวนการเขียนนักแปลของภาษาดนตรีหนึ่งไปยังอีกภาษาหนึ่ง (ABC ถึง Alda) เป็นข้ออ้างในการเรียนรู้ความสามารถของ Raku DSL ฉันสังเกตว่าดูเหมือนจะไม่มีทางที่จะยุติ a .parse! นี่คือตัวอย่างรหัสย่อของฉัน: #!/home/hsmyers/rakudo741/bin/perl6 use v6d; # use Grammar::Debugger; use Grammar::Tracer; my $test-n01 = q:to/EOS/; a b c d e f g A B C D E F G EOS grammar test { token TOP { <score>+ } token score { <.ws>? …
9 parsing  grammar  raku 

2
ค้นหาลำดับที่ต่อเนื่องกันขององค์ประกอบที่เท่ากันในรายการ Raku
ฉันต้องการค้นหาลำดับที่ต่อเนื่องกันขององค์ประกอบที่เท่ากัน (เช่นความยาว 2) ในรายการ my @s = <1 1 0 2 0 2 1 2 2 2 4 4 3 3>; say grep {$^a eq $^b}, @s; # ==> ((1 1) (2 2) (4 4) (3 3)) รหัสนี้ดูโอเค แต่เมื่อเพิ่มอีก2 ตัวหลังจากลำดับ2 2 2หรือเมื่อลบหนึ่ง2ออกไปมันบอกว่าToo few positionals passed; expected 2 arguments but got …
9 sequence  raku 


1
Perl regex เทียบกับ Raku regex ความแตกต่างในเครื่องยนต์?
ฉันพยายามแปลงโซลูชันที่ใช้ regex สำหรับปัญหาเครื่องหลังจาก Perl เป็น raku รายละเอียดเกี่ยวกับPerlmonks โซลูชัน Perl สร้าง regex นี้: (?<P>(?:vvvvvvvvvv)?) (?<B>(?:vv)?) (?<Y>(?:vvvv)?) (?<G>(?:vv)?) (?<R>(?:v)?) 0 (?= (?(?{ $1 })wwww|) (?(?{ $2 })w|) (?(?{ $3 })wwwwwwwwwwww|) (?(?{ $4 })ww|) (?(?{ $5 })w|) ) vvvvvvvvvvvvvvvvvvv0wwwwwwwwwwwwwwwที่ได้รับการจับคู่กับ หลังจากนั้นแฮชของการจับคู่จะ%+มีรายการที่จะใส่ในกระสอบ การแปลง raku ของฉันคือ: $<B> = [ [ vv ]? ] $<P> = [ …
9 regex  raku 

1
ทำไมค่าเริ่มต้นของ Raku ถ้า / while / loop / เมื่อบล็อกทั้งหมดมีค่าตัวตนเดียวกัน (.WHICH)
ยกเว้นบล็อกที่ฉันประกาศลายเซ็นบล็อกทั้งหมดมีค่าตัวเดียวกันและอ้างว่าจะประกาศในบรรทัดที่ 1 โดยไม่คำนึงถึงที่ที่พวกเขาเกิดขึ้น มีใครบ้างไหมที่ให้ความกระจ่างว่าทำไมถึงเป็นเช่นนี้? say 「Let's look at some blocks…」; if True { &?BLOCK.say; } while True { &?BLOCK.say; last; } loop { &?BLOCK.say; last; } if True -> | { 「I'm different!」.say; &?BLOCK.say; } when ?True { &?BLOCK.say; }
9 raku  routines 

2
มีวิธีในการประกาศสัญลักษณ์ใหม่อย่างปลอดภัยหรือไม่?
ฉันมักจะพบว่าตัวเองกำลังทดลองใน REPL และฉันจะพูดว่า: subset Bar of Int where * %% 57; จากนั้นฉันก็เล่นกับการตรวจสอบความถูกBarต้องของสิ่งต่าง ๆ สักเล็กน้อย Barทุกอย่างมีความสุขจนฉันรู้ว่าฉันต้องการที่จะเปลี่ยนนิยามของ หากฉันเพิ่งกำหนดใหม่Barฉันจะได้รับการRedeclaration of symbolยกเว้น ฉันพยายามใช้MONKEY-TYPINGและaugmentชอบสิ่งนี้: use MONKEY-TYPING; augment subset Bar of Int where * %% 37; แต่นั่นทำให้ฉันเกิดข้อผิดพลาดเดียวกัน ทำไมฉันต้องการสิ่งนี้ ดังนั้นฉันจึงสามารถทำซ้ำในคำจำกัดความชุดย่อย (หรือคลาสหรือสัญลักษณ์อื่น ๆ ) ของฉันในขณะที่นำการทดสอบที่ฉันได้พิมพ์ไปแล้วที่อยู่ในประวัติของฉันกลับมาใช้ใหม่
9 raku 

3
การพิมพ์ชุดคณิตศาสตร์รัดกุมใน Raku
ชุดคณิตศาสตร์ใช้ตัวอย่างลำดับต่อเนื่องที่แสดงที่นี่เป็นอาร์เรย์: my @seq = my $a=0, {++$a} ... *; for @seq[^10].kv {state $f=0; ($^k < 4 or $^k > 7) ?? say "a$^k = " ~ $^v !! (say "..." if $f ne 1; $f=1) }; พิมพ์: a0 = 0 a1 = 1 a2 = 2 ... a8 = 8 …
9 sequence  raku 

2
ติดตั้ง Raku (Perl 6) ใน Ubuntu พร้อมกับ Perl 5.26
ฉันกระตือรือร้นที่จะเรียนรู้ Raku (Perl 6) และไวยากรณ์ของมัน ฉันได้ติดตั้ง Perl 5 ไว้ในเครื่อง Ubuntu แล้ว vinod@ubuntu-s-1vcpu-1gb-nyc1-01:~$ perl -v This is perl 5, version 26, subversion 1 (v5.26.1) built for x86_64-linux-gnu-thread-multi (with 67 registered patches, see perl -V for more detail) Copyright 1987-2017, Larry Wall Perl may be copied only under the terms of either …

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.