The RakuĀ® Knowledge Base

This site is a collection of documentation, articles, links, examples about the Raku programming language. All it being putted together in one information space to help you learn Raku faster and more efficiently.

Get started

Raku is a modern, multi-paradigm language. Raku offers procedural, object-oriented and functional programming methodologies.

Rakuā€™s mottos:

  • "Raku is designed to make the easy jobs easy, without making the hard jobs impossible."

  • "There Is More Than One Way To Do It - now with even more -Ofun (optimized for fun) added."

Hi, my name is Camelia. I'm the spokesbug for the Raku Programming Language.

Š”ode examples

Grammars

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ļ½£

Async & Parallelism

start { sleep 1.5; print "hi" }
await Supply.from-list(<A B C D E F>).throttle: 2, {
    sleep 0.5;
    .print
}

# OUTPUT: ABCDhiEF

Get started

Documentation

Getting started, Migration guides from other languages, & Tutorials

Documents introducing the language for various audiences.

Language References

Documents explaining the various conceptual parts of the language.

Type Reference

Index of built-in classes, roles and enums.

Miscellaneous

Documents explaining experimental topics and Raku programs rather than the language itself.

FAQs (Frequently Asked Questions)

A collection of questions that have cropped up often, along with answers.

Community

Information about the Raku development community, email lists, IRC and IRC bots, and blogs.

The list of all documents

The list of all documents in the documentation section

Modules

Most Wanted Modules

These are the most-wanted pure Raku modules

Most Wanted Native Bindings

These are the native libraries that are most wanted as NativeCall bindings rather than as Raku source ports.

How-to

How to write your own module

App::Mi6 App::Mi6 on gihub

Helper for writing modules.

Index all modules

Index of all modules in the modules section for both zef and ecosystem

Examples

Best of Rosettacode

The best of the rosettacode.org examples

99 Problems

Based on lisp 99 problems

Cookbook

Cookbook examples

Games

Games written in Raku

Interpreters

Language or DSL interpreters

Parsers

Example grammars

... The complete list of examples

The list of all examples in the examples section

Index

The index of all terms

The Camelia image is copyright 2009 by Larry Wall. "Raku" is trademark of the Yet Another Society. All rights reserved.