1
0
Fork 0
Using the GHC REPL and Haskell to teach programming concepts through the guise of mathematics. Powered by Nix.
 
 
 
 
Go to file
Bill Ewanick 02693c7419 L33t code 841, by David Schindler 2023-11-15 17:05:27 -05:00
.vscode Ignore hint 2023-11-10 10:41:44 -05:00
src L33t code 841, by David Schindler 2023-11-15 17:05:27 -05:00
.envrc Flakify initial commit for Haskell REPL 2023-09-12 01:23:35 -04:00
.ghci Minor tweaks 2023-09-13 11:37:19 -04:00
.gitignore Hide all files, add to clean script 2023-09-19 15:42:44 -04:00
README.md Minor tweaks 2023-09-13 11:37:19 -04:00
flake.lock Flakify initial commit for Haskell REPL 2023-09-12 01:23:35 -04:00
flake.nix L33t code 841, by David Schindler 2023-11-15 17:05:27 -05:00

README.md

The Universal Calculator

Using the GHC REPL and Haskell to teach programming concepts through the guise of mathematics.
A handy assistant to help you understand and solve maths problems.

How to use

λ> 5 * 5
25

λ> 1 + 5
6

λ> 10 / 2
5.0

λ> 10 `div` 2
5

λ> 10 `div` 3
3

λ> 10 / 3
3.3333333333333335

λ> :t sum
sum :: (Foldable t, Num a) => t a -> a

λ> :t sum [1..100]
sum [1..100] :: (Num a, Enum a) => a

λ> sum [1..100]
5050

λ> f x = 5*x^3 + 4*x + 2

λ> f 1
11

λ> f 10
5042

λ> f 100
5000402

λ> map f [1..10]
[11,50,149,338,647,1106,1745,2594,3683,5042]

λ> putStrLn "Hello, world!"
Hello, world!

How to install

  • Use the DeterminateSystems installer to install Nix with Flakes.
  • cd into the top level of this repo.
  • nix develop and let Nix load the flake and set everything up.
  • ghci and get computing!
    • To enable performance timings after every input, type λ> :set +s in the REPL
    • See other initial commands being run in the .ghci file.