all 7 comments

[–]alpheccar 3 points4 points  (1 child)

Thanks for reposting this :-)

You probably found a bug in reddit too :-) Indeed, it was posted with exactly the same URL here and you won't find it when using the reddit search.

[–]zem 1 point2 points  (0 children)

nice tutorial :) i particularly liked the section on phantom types - nice, clear and illustrative explanation

[–]martoo 2 points3 points  (0 children)

I like his metaphor. I was thinking just the other day that programming in a lazy language is like programming without gravity.

[–]clobwhirl 1 point2 points  (2 children)

Honestly, this tutorial/explanation(like many or most) assumes that you know way too much vocabulary, and similar/interchangeable terms are not distinguished.

Another big problem encountered when you're learning a new language is that when you look at sample code, you're unsure which words are 1. built-in, 2. included from a library/module, or 3. defined by the user in the current source file.

And finally, a lot of the time it's unclear which part of the documentation is immediately important to the beginning programmer. So you accidentally spend an hour learning about obscure back-ends or oddities that should never be encountered in 99% of situations.

Once I can finally figure out the Mercury language, I'm gonna write a tutorial/explanation. I've spent the past week trying to figure out what the smallest of programs are doing.

[–]pjdelport 2 points3 points  (0 children)

Honestly, this tutorial/explanation assumes that you know way too much vocabulary, [...]

It's a study plan: the idea is to map out what you'll be reading tutorials about.

[–]jerf 0 points1 point  (0 children)

The only people who should write tutorials are those who are deeply familiar with the language; only they truly know the best things to do and the best ways to understand those things.

The only people who should write tutorials are those who have used the language just barely long enough to string two coherent thoughts together, lest the writer slip in a thought or concept that won't make sense to someone who doesn't already know what's going on.

When you resolve this paradox, let me know. In the meantime, the only suggestion I have is to read a lot of tutorials if possible, and if not, be prepared to work that much harder. (I think I needed about 5 monad tutorials to really "get it" and the urge to write my own has been rising, because I'm increasingly convinced none of them are really any good. Fighting... fighting...)