This programming language may be used to instruct a computer to perform a task.
|Parameter passing methods:||By reference, By value|
|Type safety:||Safe, Unsafe|
|Type compatibility:||Nominative, Duck|
|Type checking:||Dynamic, Static|
If you know Raku, please write code for some of the tasks not implemented in Raku.
Try Raku on-line!
Raku is a member of the Perl family of programming languages. Though it resembles previous versions of Perl to no small degree, Raku is substantially a new language. By design, it isn't backwards-compatible with Perl 5. The first official release was at Christmas of 2015.
Damian Conway described the basic philosophy of Raku as follows:
The Perl 6 (now Raku) design process is about keeping what works in Perl 5, fixing what doesn't, and adding what's missing. That means there will be a few fundamental changes to the language, a large number of extensions to existing features, and a handful of completely new ideas. These modifications, enhancements, and innovations will work together to make the future Perl even more insanely great -- without, we hope, making it even more greatly insane.
Major new features include multiple dispatch, declarative classes, grammars, formal parameters to subroutines, type constraints on variables, lazy evaluation, junctions, meta-operators, and the ability to change Perl's syntax at will.
The definition of Raku is specified entirely by a test suite, so we could in theory have multiple implementations. The current version of the language is 6.d, as defined by the test suite known as "roast" (Repository Of All Spec Tests). Compiler releases have date-based versions, and these are typically used in Rosetta Code entries for the "works with" fields. The only compiler implementing the full test suite, Rakudo, currently runs on either of two backends, MoarVM or JVM. Subsequent language revisions are planned for release on a roughly yearly cycle.
A Note on the Renaming
The renaming of "Perl 6" as "Raku" occurred in October 2019. Since the old name has been in use for many years, it will take some time for the new designation to propagate widely. Expect to see both names in use for some time, but understand that they refer to exactly the same underlying idea. In particular, here on Rosetta Code essentially all tasks are currently listed under Perl 6, and there are no immediate plans to change this.
Pages in category "Raku"
This category contains only the following page.