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
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
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4