From 42af799d0fe2c1a64781093bf0cf692cc6e289c4 Mon Sep 17 00:00:00 2001 From: q9i <46249765+quantum9Innovation@users.noreply.github.com> Date: Fri, 16 Aug 2024 14:32:02 -0700 Subject: [PATCH] docs: formalize readme in preparation for merge --- README.md | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index 0768ca0..bdfec74 100644 --- a/README.md +++ b/README.md @@ -1,12 +1,14 @@ # Suntheme -runs a script on sunrise and sunset, written in pure haskell. +Runs a script on sunrise and sunset, written in pure Haskell + +--- You may be wondering how a program written in Haskell, the purely functional -programming language, could possibly act on the real world by running a so-called "script". +programming language, could possibly act on the real world by running a so-called "script." It's simple. We take in the entire World as an input to a pure function, the IO Monad. -It then maps the original World to the changed World, with our desired IO actions carefully applied. +It then maps the original World to a new (generated) World, with our desired IO actions carefully applied with mathematical precision. > From the second perspective, an IO action transforms the whole world. IO actions are actually pure, because they receive a unique world as an argument and then return the changed world. @@ -14,13 +16,13 @@ See [this](https://lean-lang.org/functional_programming_in_lean/monads/io.html) ## Hacking on suntheme -It's trivially easy to get started with suntheme development thanks to [Nix](https://nixos.org/), the purely functional package manager. -Naturally, we leverage it as our primary package manager, for both Hackage packages and development tools like language servers and the like. +It's trivial to get started with suntheme development thanks to [Nix](https://nixos.org/), the purely functional package manager. +Naturally, we leverage it as our primary package manager, both for Hackage and development tools like language servers and the like. -First, install Nix through your preferred avenue. If unsure, we recommend [the Determinate Nix Installer](https://github.com/DeterminateSystems/nix-installer). +First, install Nix through your preferred avenue or local system administrator. If unsure, we recommend [the Determinate Nix Installer](https://github.com/DeterminateSystems/nix-installer). Make sure flakes and nix-command are enabled (the Determinate Installer will enable them by default). -Once you have `nix`, simply type +Once you have `nix`, simply type: ```bash nix develop