This official documentation covers a variety of presentation styles. See the main /introduction and /reference pages for a list of documents in the following styles.

  • Raku has a high level of unicode support, including many unicode operators. While this may be daunting for those coming from an ASCII background, we have some help introducing users to how to use it in your program. Finally, if you would really prefer to use ASCII, you can in most cases.

  • For programmers with experience in other languages, there are a number of Migration Guides that compare and contrast the features of Raku with other languages, including Perl, JavaScript, and Haskell.

  • Signatures - Each routine, which includes subroutines and methods, has a signature. Understanding the information given in the signature of a sub or method provides a quick way to grasp the operation and effect of the routine, and if provided in the signature, this may not be called out explicitly in the text.

  • Containers - Variables, which are like the nouns of a computer language, are containers in which information is stored. The first letter in the formal name of a container, such as the $ of $my-variable, or @ of @an-array-of-things, or % of %the-scores-in-the-competition, conveys information about the container. It should be noted, however, that you can store an Array in a $ container and treat it as a single object.

  • Classes and Roles - Raku is fundamentally based on objects, which are described in terms of classes and roles. Raku, unlike some languages, does not impose object-oriented programming practices, and useful programs can be written in a procedural style. However, complex software, such as the Rakudo compiler of Raku, is made much simpler by writing in object-oriented idioms, which is why the Raku documentation is more easily understood by reviewing what a class is and what a role is.

  • Traps to Avoid - Several common assumptions lead to code that does not work as the programmer intended. This section identifies some of them.

  • There are a number of useful resources listed on the site. These include articles, books, slide presentations, and videos.