Top 1,000 Features Creators Resources Extensions Blog Explorer CSV Download
GitHub icon

Raku

< >

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

#421on PLDB 9Years Old 3kRepos

Try now: TIO

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 Token Example
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;
Semantic Indentation X
Semantic Indentation X

View source

- Build the next great programming language · About · Acknowledgements · Published by Breck's Lab