The Nix Language

The Nix language is a lazy lambda calculus, a minimal programming language that was designed expressly for configuring Nix packages (see below). Since it is a lazy lambda calculus, it can’t really do side effects; for the most part, all it can do is evaluate expressions to a value. However, since it was designed for configuring packages, it has a few built-in features for the limited side effects required for that purpose. We list it first because Nix the language is pervasive throughout the other uses of the name Nix: it is the language the package configurations are written in; it is the language your NixOS configuration is written in and you may use it on the command line, especially with NixOS and NixOps, where commands may be Nix expressions. There is a REPL available for the Nix language. There are tutorialsLearn the Nix language: Learn Nix in Y Minutes and Nix By Example are good starting points. to help you get comfortable with the language itself, particularly if you are unaccustomed to lazy lambda calculi.

Type Classes offers courses and projects to get you started and make you an expert in FP with Haskell. For $29/month, you get access to the complete archive and all the latest content.