Dawn Tutorial

A deliberately small statically typed language, with two peer backends: it compiles to JVM bytecode or, through C, to a native executable. This tutorial has twenty chapters: it takes you from the first program to effects of your own and their handlers, then to packages and to the targets a program compiles for, and last to kernels for a GPU.

  1. 01Installing, and the first program
  2. 02Values, types and functions
  3. 03match and exhaustiveness
  4. 04Modeling data: ADTs and records
  5. 05Lists, tuples and destructuring
  6. 06Loops: while, for, break and continue
  7. 07Error handling: Result and ?
  8. 08Lambdas and the effect system
  9. 09Strings and the standard library
  10. 10comptime and const
  11. 11Calling Java
  12. 12test blocks and dawn fmt
  13. 13Modules and projects
  14. 14Map and Set
  15. 15Characters and code points
  16. 16trait: constrained generics and operator overloading
  17. 17Effects of your own: effect and with handle
  18. 18Packages and projects
  19. 19Backends and targets
  20. 20GPU kernels