Hacker News new | past | comments | ask | show | jobs | submit login
Functional programming in Clojure (helsinki.fi)
133 points by macco on June 28, 2014 | hide | past | favorite | 19 comments

edX also has an upcoming online course about functional programming: https://www.edx.org/course/delftx/delftx-fp101x-introduction...

I liked especially the Cojure part. For functional programming there are a lot of good resources imo.

A session of Martin Odersky's Functional Programming in Scala is just wrapping up. I'd reccommend it as a good way to bring a more functional style to the JVM. The Edx course, being in Haskell probably is a better choice for a different audience.

This Clojure course is a clear third alternative because of Clojure's pseudo.dynamic typing versus the Scala and Haskell's strong static typing.

What's "pseudo" about Clojure's dynamic typing?

The same sort of thing that's pseudo about pseudo random numbers...usually it is indistinguishable, sometimes in the case of Clojure one is reminded that it is probably wise to keep the underlying mechanics of Java's type system in mind if one wishes to maintain an accurate mental model. In particular, it is useful to keep in mind the way in which class and interface types structure their child types within a system of static typing.

This isn't a bad thing. Being built on Java provides tremendous utility. But the way in which Java makes lumps under the Clojure language layer which blankets it gives Clojure a different flavor than say Common Lisp...and note I said "different" not better or worse.

Anyway, that's the idea I was trying to capture with the term. I wasn't disparaging Clojure, just suggesting its relation to the JVM comes at the price against Haskell style greenfield implementation.


That has nothing to do with static or dynamic typing. -1/3 is a clojure.lang.Ratio. java.lang.Math/abs is an overloaded method that knows nothing about it. If you want that to work, wrap it in a float or use abs from clojure.math.numeric-tower.

This is the greatest introduction to clojure I have seen so far

Thanks, this looks like a great course. Not quite sure how to sign-up but I'm sure I'll figure it out :)

It resembles programming koans — you fork a repository and run tests to see if you succeeded:

>At the start of every chapter, you should go to Github and fork the chapters repository. There will be a link to the appropriate repository at the beginning of every chapter. You then clone your own fork of the repository and start working with the exercises when you encounter them among the material. You create commits and maybe push them in to your own fork while working. You also run the tests with lein midje to see if they pass.

Note that they mean the "chapter's" repository, not a "chapters repository" that contains everything.

Grading is done separately: a continuous integration tool runs your assignment and replies with your grade.

>When you want your answers graded, you push all of your work with git push. You then go to Github and send a pull request. At this point, Travis kicks in. It runs the tests for your code and then comments on the pull request whether the tests passed or failed. A link is also provided to see the nitty-gritty details.

Source: https://iloveponies.github.io/120-hour-epic-sax-marathon/bas....

It looks like having a github account is how you get started, then you fork the repo and run tests after each exercise. Pretty neat

You can clone a repo without an account

Yeah, and the repos have all the same tests that are used by Travis for grading. So you can run those locally too.

I'm seriously excited to get started on this. So many courses start with such extreme density, but this one appears to have done it right.

Already have learned SO much more than anywhere else over the course of a single day.

small typo: "No other registration is reguired."

That's actually a rather common error for Finns. G and Q are almost exclusively used in loanwords and foreign proper names. What's more, some Finns pronounce the name for the letter Q as "guu". I've never figured out why.

"What's more, some Finns pronounce the name for the letter Q as "guu"."

That's how we Finns pronounce it in the Finnish alphabet. From there it easily slips into other languages that we speak. So it is like Finnish-English accent thing.

Is there a time limit to this course or is it self-paced?

There's no time limit.

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact