Raku is a programming language created in 2015 by Larry Wall.
#430on PLDB | 9Years Old | 3kRepos |
Raku is a member of the Perl family of programming languages. Formerly known as Perl 6, it was renamed in October 2019.While historically several interpreter and compiler implementations were being written, today only the Rakudo implementation is in active development. Raku introduces elements of many modern and historical languages. Read more on Wikipedia...
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).perl; # 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;
say "Hello World";
# used in t/spec/S11-modules/nested.t
BEGIN { @*INC.push('t/spec/packages') };
module A::A {
use A::B;
}
# vim: ft=perl6
Feature | Supported | Example | Token |
---|---|---|---|
Comments | ✓ | # A comment | |
Line Comments | ✓ | # A comment | # |
Operator Overloading | ✓ | ||
Multiple Inheritance | ✓ | ||
Strings | ✓ | "Hello world" 'Hello world' | " |
Print() Debugging | ✓ | say | |
Comments | ✓ | # A comment | |
Line Comments | ✓ | # A comment | # |
Function Composition | ✓ | my &foo = &f ∘ &g; | |
Refinement Types | ✓ | subset Color of Any where Color | CMYK_Color; | |
hasGradualTypes | ✓ | ||
Semantic Indentation | X | ||
Semantic Indentation | X |