许多新功能极大地提升了我们表达能力强且功能丰富的编程传统。
- 面向对象编程,包括泛型、角色和多重分派
- 函数式编程原语,惰性和急切列表求值,联结,自动线程和超运算符(向量运算符)
- 并行性、并发性和异步性,包括多核支持
- 可定义的语法,用于模式匹配和通用字符串处理
- 可选和渐进式类型
grammar Parser {
rule TOP { I <love> <lang> }
token love { '♥' | love }
token lang { < Raku Perl Rust Go Python Ruby > }
}
say Parser.parse: 'I ♥ Raku';
# OUTPUT: 「I ♥ Raku」 love => 「♥」 lang => 「Raku」
say Parser.parse: 'I love Perl';
# OUTPUT: 「I love Perl」 love => 「love」 lang => 「Perl」
start { sleep 1.5; print "hi" }
await Supply.from-list(<A B C D E F>).throttle: 2, {
sleep 0.5;
.print
}
# OUTPUT: ABCDhiEF
# No floating point noise:
say 0.1 + 0.2 == 0.3; # OUTPUT: True
say (1/13 + 3/7 + 3/8).raku; # OUTPUT: <641/728>
# Infinite list of primes:
my @primes = ^∞ .grep: *.is-prime;
say "1001ˢᵗ prime is @primes[1000]";
# Lazily read words from a file
.say for '50TB.file.txt'.IO.words;
想了解更多?访问 Raku 示例页面