• baseless_discourse@mander.xyz
    link
    fedilink
    arrow-up
    1
    ·
    4 months ago

    Yeah, it is one of the problem I have about Haskell.

    The other two are lazy evaluation makes print debugging almost impossible, you will need to print the entire environment to figure out where you are.

    Finally, I feel like List.fold, state monad, lens are basically just working with mutable structure with extra steps. Although this constructs prevent newbies who are not principled enough to effectively use mutable structure from using mutable structure, but it also doesn’t help experienced user to write more effective and clean code.

    Mutuabilty are certainly not harmless either. For example in ocaml, if you construct the IntSet type twice, they will be two completely different type. But this behavior can be pretty easily avoided by an experienced user.

    What do you feel about these features/shortcomings?