41
you are viewing a single comment's thread
view the rest of the comments
[-] onlinepersona@programming.dev -4 points 1 day ago

"If you don't paint a picture with this specific paint, it's not a painting". So if someone were to format the code differently, say put each right bracket on a new line, the compiler would fail?

Haskell and Lisp are languages that by nature pull CS and math wizards

They pull them because he learning material is written for them. If the learning material were written for non-wizards, it would attract non-wizards.

"Learn you a Haskell" is not a good book, IMO. It teaches exactly in the style mentioned. Just look at the part on applicative functors.

fmap :: (a -> b) -> f a -> f b It says: give me a function that takes an a and returns a b and a box with an a (or several of them) inside it and I’ll give you a box with a b (or several of them) inside it. It kind of applies the function to the element inside the box.

He has to describe what the function does because the function declaration doesn't use clear variables or type names. He says the word "box" but writes "f". Why not just write "box"?

The entire CS and maths field is filled with people who suck terribly at explaining anything to anybody who doesn't think like them. Monads aren't terribly complicated, but the way they are explained is. Every book trying to explain them makes the mistake of going deep first and then zooming out. They explain in excruciatingly minute detail how monads are built, what other complicated concept they are like, and use single letter names for everything in that explanation.

 class (Functor f) => Applicative f where  

     pure :: a -> f a  

     (<\*>) :: f (a -> b) -> f a -> f b

Same here. Then the examples use Just which doesn't help with readability either. It would read much better if the code were actually literal instead of using shorthands for everything. More mental energy has to go into keeping a mapping table for every letter in the alphabet instead of it being written explicitly, right there.

It's why I hate reading Haskell declarations and old code. Programmers back then just used 1-4 characters for everything. char, bool, m_lnr, T, R, I, f, g, h,.... As if they were constantly on the run from the last person who had to read and maintain their code.

You might be a Haskell teacher, but that doesn't say anything about the quality of your teaching. I play basketball and could even coach a team, but there's nothing that will say whether I'm a good coach. If I get a team of people who already play well together, speak my lingo, and jive with me, they might think I'm a good coach. But if I get a team of beginners who have never heard my vernacular, can't understand my mannerisms, and think "tough love" and the cold shoulder make me a dick, they'll think I suck.

[-] littleomid@feddit.org 4 points 1 day ago* (last edited 1 day ago)

My students who did Haskell last year all passed with flying colors. I think the examples above are plenty clear, and the students also found them clear after I explained them, and with enough practice it wasn’t an in issue. I read the literature, practice it, and then use my teaching skills to teach it. It’s my job, and I take pride in what I do.

I’d say maybe the hypothetical you just needs a good teacher to show how it’s done, or the hypothetical student needs to read it enough till you understand it. In math we also have symbols, in math we also use shorthands. Why not in compsci?

Bar that, Haskell is just not a language that’s suited as a first language. The literature expects from you to be able to understand technical manuals. You don’t go teaching Rust to 8th graders, you don’t go learning Haskell without knowing at least what currying means.

As for brackets, you’re free to put them wherever you want; the professional are also free to do what they want, and it’s usually a good idea to adhere to a standard.

[-] AbelianGrape@beehaw.org 1 points 17 hours ago

I remember a promising study about Haskell as a first language several years ago. The much bigger problem is indeed documentation and building a curriculum for beginners than anything about the language itself (currying included -- without background from another language you aren't already stuck in the mental state of "every function is uncurried").

Haskell is my favourite language and I like LYAH but at the end of the day OCaml infrastructure for beginners is just better. LearnOCaml in particular. It's a worse language but I get to focus on the "paradigms" part of my course without having to spend extra time teaching how to jump through Haskell's hoops. (They're good hoops, but if I covered them quickly, students wouldn't see it that way, I think.)

If we could get LearnHaskell or something and have it as easy to write exercises and configure, I'd seriously consider switching.

this post was submitted on 28 Sep 2026
41 points (91.8% liked)

Programming

28617 readers
225 users here now

Welcome to the main community in programming.dev! Feel free to post anything relating to programming here!

Cross posting is strongly encouraged in the instance. If you feel your post or another person's post makes sense in another community cross post into it.

Hope you enjoy the instance!

Rules

Rules

  • Follow the programming.dev instance rules
  • Keep content related to programming in some way
  • If you're posting long videos try to add in some form of tldr for those who don't want to watch videos

Wormhole

Follow the wormhole through a path of communities !webdev@programming.dev



founded 3 years ago
MODERATORS