Skip to content

Latest commit

 

History

History
executable file
·
165 lines (106 loc) · 2.31 KB

index.md

File metadata and controls

executable file
·
165 lines (106 loc) · 2.31 KB

A Complete Course of the Raku programming language

{% comment %}{% assign compact_menu = true %}{% endcomment %} {% include toc.html %}

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

© 2021