TE
TechEcho
Home24h TopNewestBestAskShowJobs
GitHubTwitter
Home

TechEcho

A tech news platform built with Next.js, providing global tech news and discussions.

GitHubTwitter

Home

HomeNewestBestAskShowJobs

Resources

HackerNews APIOriginal HackerNewsNext.js

© 2025 TechEcho. All rights reserved.

Learn Haskell Fast and Hard

311 pointsby psibiover 11 years ago

23 comments

ludicastover 11 years ago
This is a tremendous resource, but may I suggest you rather point here: <a href="https://www.fpcomplete.com/school/haskell-fast-hard" rel="nofollow">https:&#x2F;&#x2F;www.fpcomplete.com&#x2F;school&#x2F;haskell-fast-hard</a>.<p>It&#x27;s the same course&#x2F;series, but with interactivity, so Haskell can coded&#x2F;evaluated from the browser. In fact, one &quot;dir&quot; up, you will find a bunch of similar tutorials here : <a href="https://www.fpcomplete.com/school" rel="nofollow">https:&#x2F;&#x2F;www.fpcomplete.com&#x2F;school</a>.
评论 #6584873 未加载
ssivarkover 11 years ago
I tried dipping my hands into Haskell over the summer. I fell in love with two resources:<p>1. Yann Esposito&#x27;s Haskell Fast and Hard (on FPcomplete -- <a href="https://www.fpcomplete.com/user/yogsototh/haskell-fast-hard" rel="nofollow">https:&#x2F;&#x2F;www.fpcomplete.com&#x2F;user&#x2F;yogsototh&#x2F;haskell-fast-hard</a>)<p>2. Learn you a Haskell by Miran Lipovaca <a href="http://learnyouahaskell.com/" rel="nofollow">http:&#x2F;&#x2F;learnyouahaskell.com&#x2F;</a><p>The latter author decided to write the book based on his experience in learning Haskell. It&#x27;s definitely one of the simplest and clearest programming books I&#x27;ve read.
评论 #6587653 未加载
评论 #6587263 未加载
评论 #6587168 未加载
评论 #6587516 未加载
XorNotover 11 years ago
Ok so here&#x27;s the problem I&#x27;m having with trying to get into Haskell, and it&#x27;s a problem Carmack identified: there&#x27;s way too many &quot;toy examples&quot; out there.<p>I&#x27;ve always learned languages because I need them for something. C&#x2F;C++ because I wanted to write a game. Python because it&#x27;s the complex scripting language of choice in Ubuntu. JavaScript for obvious reasons.<p>What I really <i>really</i> need is something which walks me through doing something significant with Haskell - like, a GUI app on Linux or something (my current focus: I&#x27;ve never really done it, but if I&#x27;m learning something new I&#x27;d like there to be a practical product at the end).<p>A bunch of language constructs, while technically interesting, don&#x27;t help me to grok the language at all.
评论 #6586107 未加载
评论 #6587407 未加载
评论 #6586062 未加载
评论 #6586043 未加载
评论 #6588992 未加载
评论 #6591254 未加载
评论 #6590054 未加载
评论 #6586372 未加载
bootheadover 11 years ago
How much interest would there be in a 0 to full Haskell development environment set of ansible scripts (and or Vagrantfile)? I&#x27;m working on a start up using Haskell at the moment and I&#x27;ve been capturing all of my set up in this way. If folks are interested I can make some of this stuff available.
评论 #6585570 未加载
评论 #6584669 未加载
评论 #6585403 未加载
dllthomasover 11 years ago
<i>&quot;Instead of being in your way like in C, C++ or Java, the type system is here to help you.&quot;</i><p>I&#x27;d still say the type system is there to help you in C, C++, and Java, it just doesn&#x27;t do nearly as good a job of it, and winds up in your way more often because it&#x27;s less expressive.
评论 #6587251 未加载
评论 #6587228 未加载
alkonautover 11 years ago
Learning a functional language is a great idea <i>especially</i> if you never intend to use one after you&#x27;ve learned it. It&#x27;s like speaking a second language. Has a great effect on the understanding of your own language.<p>At university the first thing everyone had to (in programming) do was a Haskell course. Felt weird at the time, but in hindsight it was fantastic. It meant everyone had to throw their preconceptions about programming out the window.<p>It didn&#x27;t occur to me until recently (10-15 years later), that functional concepts are actually a <i>good thing</i> to apply in any language; that it makes code parallelizable, modular, maintainable, testable, and so on. I just thought functional was functional (i.e. elegant but hard) whereas imperative was imperative (inelegant but easy). Much like the difference between algebra and arithmetic.<p>So go learn a second language, or even a third. Even if you intend to speak english and Java for the rest of your life. I&#x27;d choose Haskell and Spanish.
virtualwhysover 11 years ago
Pretty awesome, I&#x27;ve steered clear of Haskell preferring Scala instead (easier syntax for me to grok), but this tutorial makes Haskell far more accessible.<p>Off topic but does anyone know of a Rails&#x2F;Play + Linq to SQL&#x2F;ScalaQuery equivalent in Haskell?<p>Beyond that just being able to generate PDF invoices, send out emails and have access to a decent date&#x2F;time library (like JodaTime) would cover the essentials for web development.
评论 #6585442 未加载
评论 #6585979 未加载
评论 #6586948 未加载
评论 #6585545 未加载
6renover 11 years ago
ASIDE: I&#x27;ve been using <i>learn you a haskell for great good!</i> <a href="http://learnyouahaskell.com/" rel="nofollow">http:&#x2F;&#x2F;learnyouahaskell.com&#x2F;</a>, and found it helpful, insightful and the examples nicely paced so you can treat them as exercises as you go.... up until the module chapter, which is more like a reference, very long, detailed, tedious. I got up to here <a href="http://learnyouahaskell.com/modules#data-char" rel="nofollow">http:&#x2F;&#x2F;learnyouahaskell.com&#x2F;modules#data-char</a> (check out how small the scroll bar slider is on the right - this is a big chapter).<p>Did this stop you or how did get past it?<p>How does <i>Learn Haskell Fast and Hard</i> compare?
评论 #6585121 未加载
评论 #6584945 未加载
JonCoxover 11 years ago
If you want to learn Haskell slow and easy, this is brilliant: <a href="http://learnyouahaskell.com/chapters" rel="nofollow">http:&#x2F;&#x2F;learnyouahaskell.com&#x2F;chapters</a>
616cover 11 years ago
I have been perusing Learn You a Haskell but I like this more. Fast and hard indeed. Will read this over tonight.
评论 #6584695 未加载
AnthonBergover 11 years ago
PERFECT. Relaxed but intense. Perfect! ... for me. This is exactly the kind of tutorial that works best for me. (I&#x27;m sure many people will find it unusuable. But that&#x27;s OK - we have as many ways to learn as we have learners.)<p>The selection of artwork is pretty nice too.<p>Very very good. Thank you author and poster.
carterschonwaldover 11 years ago
NB: if you&#x27;re trying out haskell and you&#x27;re on a mac with xcode 5, you&#x27;ll be hitting some weird CPP related errors due to GHC 7.6 and older not playing nice with Clang&#x27;s CPP.<p>I shared a number of work arounds with the general haskell community a few weeks ago here: <a href="http://www.haskell.org/pipermail/haskell-cafe/2013-September/110320.html" rel="nofollow">http:&#x2F;&#x2F;www.haskell.org&#x2F;pipermail&#x2F;haskell-cafe&#x2F;2013-September...</a> (there are alternative work arounds, but I only listed the ones which are simple and easy to communicate with other people and be able to expect them to follow the steps correctly.)
anuragramdasanover 11 years ago
I have been wanting to look into Haskell for a long time now. Never really got the time. Also the syntax was a bit off putting.<p>Just skimmed through. I see that there is a bit of Javascript and C in the code too as reference matertial. Most people dont like such a way of teaching but it looks like the tutorial isnt really trying to teach Haskell in terms of Javascript or C. Really makes me want to look into this. Thanks for putting the efforts.
评论 #6584425 未加载
ufoover 11 years ago
Minor nitpick: Using pattern matching instead of `if xs == []` is not just to make code prettier and cleaner.<p>First of all, you should be using the `null` function instead of `== xs` because the `==` operator only works if your list contents are Eq-able.<p>But the most important thing is that pattern matching is more type safe. If you use `head` and `tail` you, as a programmer, need to make sure that you only call them on a non-empty lists or else you get an error. On the other hand, if you use pattern matching the compiler helps you make sure that you always covered all the possible cases (empty vs non-empty) and you never need to worry about calling the unsafe head and tail functions.
asgard1024over 11 years ago
I really like the art images in the tutorial. Nice touch.<p>Although I am not sure about the premise - I doubt Haskell, as a language close to mathematics, can be learned fast. This tutorial seems quite shallow on some things, like monads.
评论 #6585461 未加载
tieTYTover 11 years ago
I&#x27;d like one of these beginner tutorials to have a chapter named, &quot;learning cabal and using a library&quot;. That was a pain point for me (especially developing on windows). Well, not so much a pain point as a mortal wound.
aruncover 11 years ago
Thinking about Haskell, reminds me of this <a href="http://www.xent.com/pipermail/fork/Week-of-Mon-20070219/044101.html" rel="nofollow">http:&#x2F;&#x2F;www.xent.com&#x2F;pipermail&#x2F;fork&#x2F;Week-of-Mon-20070219&#x2F;0441...</a>
tloover 11 years ago
Nice tutorial, but old story: <a href="https://news.ycombinator.com/item?id=3806841" rel="nofollow">https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=3806841</a>
fmax30over 11 years ago
Okay so i completed this tutorial in about 5 hours , gave everything due , but still i only understand like 30 % of it and that too of the starting part.
cnuover 11 years ago
Check out <a href="http://learnxinyminutes.com/" rel="nofollow">http:&#x2F;&#x2F;learnxinyminutes.com&#x2F;</a>. Loads of languages&#x2F;tools to learn.
pa5tabearover 11 years ago
Commenting to bookmark.
评论 #6587425 未加载
batgaijinover 11 years ago
a monad is like a taco salad.
RyanZAGover 11 years ago
I haven&#x27;t seen this Haskell syntax before:<p><pre><code> [1,3..10] ⇔ [1,3,5,7,9] </code></pre> Imagine running into this one on a production system... Someone needs to make a &#x27;Haskell: the good parts&#x27; or at least a lint.
评论 #6585115 未加载
评论 #6585417 未加载
评论 #6585272 未加载
评论 #6585421 未加载
评论 #6585897 未加载
评论 #6585132 未加载