https://course.raku.org/ A Complete Course of the Raku programming language * About this course 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 + Running from command line + Running from REPL + Running from IDE + Using docker + Using online services * Simple input and output + Output with say + Input with prompt * Comments + Single-line comments + Multi-line comments + Embedded comments Variables and data types essentials * Scalar variables + Declaring a variable + Assigning a value + Declaration with initialization + The defined-or operator + Names of the variables * Strings + String concatenation + Variable interpolation + Code interpolation + Escaping special characters + String length * Numbers + Integer numbers + Rational numbers + Floating-point numbers + Operations with numbers * Boolean type + Boolean operations + Boolean operations with other types * Ranges + Excluding endpoints + Matching against a range Control flow essentials * Code blocks + Lexical scope + Global variables + Local variables * Conditional checks + if blocks + else blocks + Using elsif + Using unless + if and unless as statement modifiers + Comparing numbers + Comparing strigns + Ternary operator * Loops + Using while + Using until + Using repeat + while and until as statement modifiers + Three-statement loop + Infinite loops + for loops + Topic variable + Postfix form of for More about types * Data type conversion + Introspection with WHAT + Converting types using type coercion methods + Converting types using constructor forms + Converting types with prefix operators * Typed variables + Type constraints + Using of + Type conversion for typed variables + Allomorphs * Positional data types + Arrays + Nested arrays + The @*ARGS array + Interpolating arrays + Quoting string arrays + Lists + Subscripting ranges * Associative data types + Pairs + Hashes + Nested hashes + Interpolating hashes Functions essentials * Creating and calling functions + Function names + Function parameters + Returning the result + Positional parameters + Named parameters + Default values * More about functions + Mind the space + Typed parameters + Return type + Multi-functions * Built-in functions for printing + say + print + put + note * The MAIN function + Reading command-line arguments + Multiple MAIN functions + Using unit sub 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 and made * 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 * (c) 2021