Top 1,000 Features Creators Events Podcasts Extensions Interviews Blog Explorer CSV

Raku

< >

Raku is a programming language created in 2015 by Larry Wall.

#410on PLDB 9Years Old 3kRepos
Homepage · REPL · Try It Online · Download · Wikipedia

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...


Example from the web:
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;
Example from hello-world:
say "Hello World";
Example from Linguist:
# used in t/spec/S11-modules/nested.t BEGIN { @*INC.push('t/spec/packages') }; module A::A { use A::B; } # vim: ft=perl6

Language features

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

View source

- Build the next great programming language · About · Resources · Acknowledgements · Part of the World Wide Scroll