The Complete Course of the Raku programming language
Part 1. Raku essentials
Basic introduction to Raku and its compiler
- What is Raku
- Raku vs. Rakudo
- How to install Rakudo
- Editors and IDEs
- Conventional file extensions
- Hello, World!
- Notes on using Unicode
- Running programs
- Simple input and output
- Comments
Variables and data types essentials
Control flow essentials
More about types
Functions essentials
- Creating and calling functions
- More about functions
- Built-in functions for printing
- The
MAIN
function
Part 2. Advanced Raku subjects
Debugging
Scalar containers
- Understanding Raku containers
- Data types and scalars containers
- Proxying method calls
- Default values
- Introspection with MOP
Still to go
Part 2. Advanced Raku subjects
Containers
- Understanding Raku containers
- Integers
- Strings
- Date and Time built-in support
- Other data times
- Understanding a sequence
Operators
- Types of Raku operators (infix, prefix, etc.)
- Overview of operators in Raku
- Meta-operators
- User-defined operators
Control flow
- Phasers
- Block-related phasers (e.g.
LEAVE
) - Other options (e.g.,
gather
,given
)
Subroutines
- Signature
- Multiple dispatch
- More on MAIN subroutines
- Nested subroutines
- Anonymous subroutines
Modules
- Creating modules
- Using modules
- Different types of importing (
import
,need
, etc.) - Introspections
- Installing modules from web
Part 3
Object-oriented programming
- Classes in Raku
- Attributes
- Methods
- Class methods
- Subroutines vs methods
- Inheritance
- Roles
- Introspection
Input and output
- Standard input, output, and errors
- Working with files
- Working with directories
- File streams
Exceptions
- The
try
block - What is a soft failure
- The
CATCH
phaser - Exception objects
- Failure objects
- Multiple dispatch in handling exceptions
- Custom exceptions
Part 4
Regexes
- Literals and character classes
- Regexp matching
- Quantifiers
- Captures
- Alternations
- Anchors
- Forward and backward assertions
- Adverbs (such as
:g
etc.) - String substitution and replacement
Grammars
- What is a grammar
- Creating grammars
- Rules
- Tokens
- Grammars vs. classes and inheritance
- AST (Abstract syntax tree),
make
andmade
- Actions
- Inline actions vs. action class
Part 5
Functional programming
- Recursion
- Reduction
- Higher-order functions
- Lambdas
- Data feeds
- Iterators
- Lazy and infinite sequences
Concurrent programming
- Junctions
- Threads
- Promises
- Channels
Reactive programming
- Supplies
- Live and on-demand supplies
- Understanding
react
- Understanding
whenever
- Understanding
await
Web programming
- Making remote connections
- Simple HTTP client
- Simple HTTP server
- Cro 101
Appendix
- List of quizzes
- List of exercises
Translations of this page: English • Deutsch • Español • Italiano • Latviešu • Nederlands • Български • Русский • Українська
© 2021–2024 by Andrew Shitov