
Write yourself a Scheme in 48 hours: A Haskell Tutorial - juliangamble
http://jonathan.tang.name/files/scheme_in_48/tutorial/overview.html
======
jamesbritt
Previous:
[https://news.ycombinator.com/item?id=1378043](https://news.ycombinator.com/item?id=1378043)

From a comment there:
[http://en.wikibooks.org/wiki/Write_Yourself_a_Scheme_in_48_H...](http://en.wikibooks.org/wiki/Write_Yourself_a_Scheme_in_48_Hours)
is the maintained version.

~~~
nostrademons
It's weird to see a comment I wrote 4 years ago saying "Yeah, I haven't really
touched this in 3 years." Man, I'm getting old.

Still, it's neat to see folks still find this interesting & informative. I
learned a lot from writing it, and I hope others learn a lot from reading &
working through it.

~~~
jamesbritt
Thanks for writing it. It was one of the things that helped me makes some
sense of Haskell.

So much of what I had been seeing was all heavy math and abstractions, and
while that's interesting it never gave me a foothold for actually _using_ it.

Seeing something much more tangible made a big difference.

~~~
ics
I have the same feeling (and appreciation)– it inspired me to try learning
both Haskell and Scheme. Still not sure if I'm an idiot or just insatiable.

~~~
duaneb
I gotta agree. It helps that Parsec is so awesome and Scheme so
straightforward--very little cruft to cover.

------
priyadarshy
Spent a lot of time this week working through the Learn you a Haskell
tutorial. Definitely getting bored of adding numbers, each exercise and
example is so trivial that it's hard to get curious and go down a rabbit hole
that teaches you a lot.

I'll try this out this week. Thanks for sharing!

What I'm wondering about is how you arrived at the 48 Hour number?

~~~
cursork
LYAH is a chore. I got nowhere with it - it is tedious. After a cursory glance
a few of us at my company are working through The Little MLer in Haskell
instead. It seems to really be focussing on types and I think those kind of
core concepts are important to grasp at the early stages.

More importantly, the Little Schemer and The Little MLer are aimed at non-
programmers... yet programmers struggle with them. We should question why that
is.

~~~
VMG
Just to counter-signal the general negativity bias of internet comments on
anything popular:

I liked Learn You A Haskell a lot.

~~~
priyadarshy
Yup, I didn't mean to open a negativity fest. It's a double edged sword with
the shallow examples (e.g. calculating BMI). LYAH does a very good job of
explaining every single detail in those lines of code, I've never left an
example confused but at the same time the simplicity keeps you from having
questions you want to explore.

I don't think this is a bad thing. In any mathematics class I ever excelled in
I spent a lot of time mindlessly executing the mechanics and knowing the names
and pieces that were relevant, once I knew all that it became very easy to see
the interpretations and the applications.

I think I'll finish LYAH before doing one of these more application oriented
tutorials.

~~~
cursork
To ameliorate my point; I use LYAH as a reference piece a lot. It's well
written and is a really takes time over many subjects. I mostly wanted to make
(badly!) a point that there are resources out there that will push experienced
and non-experienced alike. And they don't need to be in the language you're
looking to learn right now.

Either way - I hope to give Write Yourself a Scheme... a go sometime soon.
Looks good.

------
theGimp
It seems this has been posted before.

Nonetheless, thank you very much; it's new to me. Scheme is wonderful, and I'm
enjoying learning Haskell. This will be a fun exercise.

------
Datsundere
I got stuck in the first exercise #2. I'm trying to read 2 args, cast them to
int and add them.

putStrLn( read (args!!0)::Int + read(args!!1)::Int )

Definately need to do learnyouahaskell before reading this tutorial which is
what I'm about to do. The link to how read is implemented doens't make any
sense to me (coming from a procedural language background).

I suggest adding answers to the exercises or asking questions that are self
contained in the tutorial.

~~~
ben0x539
blah :: Type + blah :: Type is gonna get parsed as blah :: (Type + blah ::
Type), just add more parens there. Also, you need to convert the result back
to a string before calling putStrLn.

