Closed TrueBoxGuy closed 3 years ago
I'm not sure whether I've focussed enough on terminology, or whether it would get in the way of the lesson.
Here's an image of the page.
This is a pretty quality explanation. I have a few comments:
In a few places, the word "brackets" ([]
) is used instead of "parenthesis" (()
)
Consider explicitly mentioning how partially applied operators are translated so the positions are more obvious. e.g.
(<=)
-> \a b -> a <= b
(1 <=)
-> \a -> 1 <= a
(<= 1)
-> \a -> a <= 1
I would suggest adding a type signature when defining an operator in at least one instance just to make sure it is covered
Consider using this as an opportunity to discuss ++
as an example of right associativity and why it's faster than left associativity (for that case), and why ++
is slow in general (though this could be out of scope here, up to you)
I would suggest adding a note that recommends to avoid defining operators because they make code harder to read - names usually give clues regarding what the function does and operators don't do that usually, and maybe suggest to make operators aliases to normal functions
Consider linking to the operators glossary if it make sense
Unrelated: I'm not a fan of using ligatures and unicode symbols in code. I think this can result in confusion for the reader and make the content less accessible. An example of this is <=
being rendered as ≤
in this document.
I suggest removing ligatures and unicode from the content. @Kleidukos
Agreed to disable ligatures
@Kleidukos do you have any plans on how we should link to FP complete? Can I just put it at the beginning of the lesson?
@TrueBoxGuy Michael allowed us to display FPCo content on Haskell School under condition of referencing the original content on the FPCo website
Closes #25.