In common with most modern programming languages, Raku is designed to support parallelism, asynchronicity and concurrency. Parallelism is about doing multiple things at once. Asynchronous programming, which is sometimes called event driven or reactive programming, is about supporting changes in the program flow caused by events triggered elsewhere in the program. Finally, concurrency is about the coordination of access and modification of some shared resources.| docs.raku.org
Raku highlighting| docs.raku.org
Raku highlighting| docs.raku.org
In Backtrace§| docs.raku.org
Raku is built on a metaobject layer. That means that there are objects (the metaobjects) that control how various object-oriented constructs (such as classes, roles, methods, attributes or enums) behave.| docs.raku.org
Signatures appear inside parentheses after subroutine and method names, on blocks after a -> or <-> arrow, as the input to variable declarators like my, or as a separate term starting with a colon.| docs.raku.org
Raku provides strong support for Object Oriented Programming (OOP). Although Raku allows programmers to program in multiple paradigms, Object Oriented Programming is at the heart of the language.| docs.raku.org
These routines are defined in different files along with one or several other classes, but are not actually attached to any particular class or role.| docs.raku.org
Raku highlighting| docs.raku.org
Raku highlighting| docs.raku.org
Raku highlighting| docs.raku.org
Raku highlighting| docs.raku.org
Raku highlighting| docs.raku.org
Raku borrows many concepts from human language. Which is not surprising, considering it was designed by a linguist.| docs.raku.org
This section explains how raw data, variables and containers relate to each other in Raku. The different types of containers used in Raku are explained and the actions applicable to them like assigning, binding and flattening. More advanced topics like self-referential data, type constraints and custom containers are discussed at the end.| docs.raku.org
Abstract class§| docs.raku.org
Raku highlighting| docs.raku.org
Raku highlighting| docs.raku.org
In Str§| docs.raku.org
Raku highlighting| docs.raku.org
Raku highlighting| docs.raku.org
Raku highlighting| docs.raku.org
Lists have been a central part of computing since before there were computers, during which time many devils have taken up residence in their details. They were actually one of the hardest parts of Raku to design, but through persistence and patience, Raku has arrived with an elegant system for handling them.| docs.raku.org
Raku highlighting| docs.raku.org
In Any§| docs.raku.org
In IO::Path§| docs.raku.org
In Nil§| docs.raku.org
In role Iterable§| docs.raku.org
In IterationBuffer§| docs.raku.org
Raku highlighting| docs.raku.org
Statements§| docs.raku.org
In Date§| docs.raku.org
In Array§| docs.raku.org
In Any§| docs.raku.org
Variables are symbolic names for values or containers. Variable declarations or assignment of values may create a container on the fly. Variable names can start with or without a special character called a sigil, followed optionally by a second special character named twigil and then an identifier.| docs.raku.org
One often needs to refer to a specific element (or slice of elements) from a collection or data structure. Borrowing from mathematical notation where the components of a vector v would be referred to as v₁, v₂, v₃, this concept is called "subscripting" (or "indexing") in Raku.| docs.raku.org
See creating operators on how to define new operators.| docs.raku.org