Haskell Concepts in One Sentence
Hmm. They certainly have a naming and explanation problem in Haskell land. Some impressions from a few of these better explanations.<p>&quot;A monad is composed of three functions and encodes control flow which allows pure functions to be strung together.&quot;<p>Gibberish compared to claim that monads just execute functions in a specified order. Aka an imperative function or procedure by one definition I&#x27;ve seen a lot. Of course, that monad definition might be wrong, too.<p>&quot;A recursive function is a function that calls itself inside its own definition.&quot;<p>That&#x27;s a recursive definition lol. Must have been a joke.<p>&quot;A monad transformer allows you to stack more than one monad for use in a function.&quot;<p>We&#x27;ve had composition of procedures for a long time. Perhaps Haskell could&#x27;ve called it a MonadComposer?<p>&quot;Lift is an operation on a functor that uses fmap to operate on the data contained in the functor.&quot;<p>fmap-apply() or something like that?<p>&quot;Optics(lens and prisms) allow you to get and set data in a data type.&quot;<p>Getters and setters. My early OOP&#x2F;C++ books are finally more intuitive than something.<p>&quot;Map applies a function to every element of a list.&quot;<p>foreach(function(), list)<p>&quot;A predicate is a function that returns true or false.&quot;<p>A boolean function.<p>&quot;Filter applies a predicate to a list and returns only elements which return true.&quot;<p>Syntactic sugar for a foreach(function, list()) where the function on each member is an If (Conditional) is TRUE Then AddElementToNewListThatsReturned(). Yeah, even the description of imperative version is getting long. This might be a productivity boost.<p>&quot;A morphism is a transformation from any object to any other object.&quot;<p>A cast from one object to another? Or one with an actual conversion function and&#x2F;or check? The functional name seems more accurate, though.<p>&quot;Algebraic data types are a method to describe the structure of types.&quot;<p>Ahh, they&#x27;re just structs. Wait, what is a type exactly? And therefore what is an abstract... oh darn...<p>&quot;Free monads allow the transformation of functors to monads.&quot;<p>A functor is an object that can be fmaped over. We covered map. Maybe the same. A monad is either an ordering of functions or something composed of three functions and encodes control flow composed of pure functions. Free monads are apparently an unknown thing that can transform objects that can be fmaped over into something composed of three functions with encoded control flow of composed, pure functions. I heard a lot of good Masters and Ph.D. proposals before this one. This is good, though. Especially quantifying the unknown aspects with a lot of NSF-funded R&amp;D.<p>&quot;A lambda is an unnamed function.&quot;<p>&quot;Types are an inherent characteristic of every Haskell expression.&quot;<p>&quot;Currying uses partial application to return a function until all arguments are filled.&quot;<p>&quot;A category is a collection of objects, morphisms, and the configuration of the morphisms.&quot;<p>Ok, I just have fun with that one. Author did good on a lot of them. I&#x27;m just going to leave these here as quotes to add to Free Monads in... The Advanced Course: Haskell in Two or More Sentences. They provide anywhere from no information at all to the uninitiated to extra confusion inspiring taking or avoiding Haskell courses. :)