We have made it to the beginning! With a solid understanding, or at least a better understanding we are ready to tackle I/O, aka side effects!
It as dawned on me as I have tried to find a better way to number, categorize this episodes, that each unit has about a dozen lessons. So Unit 4, that we’ll cover now are lessons 20-23.
This prevents it from clouding up or haskell environment of purity.
Even as I write out the samples I had to search for the following
Data constructor is not in scope?
build random, not included in the main lib since 7.2
./ call it. 🙄-h so see if you can figure it out.The IO () type. Which appears to be an innvoced function! NOPE
do keyworkputStrLn does that return a value ?And my favorite curveball, A backwords arrow <- from getLine
String, but a String IO
Like Maybe, IO describes a context for their parameters rather than a container.
IO actions are not functions. I repeat, not functions. Just a tuple with with Zero elements.IO, the nothing is our return value! 😵the empty tuple is the best way to communicate the nothing/empty return value
bc of this Main isn’t a function, it must return a value. So we refer to it as an IO Action that action being a side effect!
IO Actions might return a value, but not take a init value or doesn’t always return the same value. whatever it might be, it will violate 1 of the 3 rules that that a function must follow in Haskell.putStrLn is an IO Action gottcha!!IO Action too. Ah ha!!!JavaScript to Elm
Jesse Tomchak