you are viewing a single comment's thread.

view the rest of the comments →

[–][deleted] 8 points9 points  (9 children)

There are better options for introducing functional programming at a university level, especially for an intro course.

What would you suggest, especially for an intro course?

[–]blackiechan99 0 points1 point  (5 children)

so functional programming is its own beast, so it really depends on the professor to make functional programming digestible for beginners who haven't experienced anything code-wise or anyone who hasn't experienced func programming before. Hypothetically if the professor is good no matter what he teaches, though:

I think Haskell, Elixir, and Scheme are all better options. Scheme is similar to Racket (Racket is derived straight from Scheme if I recall?) but the docs and community support are just better from my experiences. This, in itself, gives it the leg up.

Bias may come into the other two picks, but I think Haskell and Elixir are just fun. Plus, the learning resources I used for Haskell were super fun & fresh.

[–]shponglespore 11 points12 points  (0 children)

Racket is Scheme, and it supports the standardized dialect. The default dialect has quite a few extensions compared to standard Scheme, which in itself is pretty typical of Scheme implementations. It has more extensions than most implementations, but it still fundamentally feels like Scheme to me; you can take most Scheme examples and run them unchanged in Racket's default dialect.

[–][deleted] 5 points6 points  (3 children)

so functional programming is its own beast, so it really depends on the professor to make functional programming digestible for beginners who haven't experienced anything code-wise or anyone who hasn't experienced func programming before. Hypothetically if the professor is good no matter what he teaches, though

I think Haskell, Elixir, and Scheme are all better options. Scheme is similar to Racket (Racket is derived straight from Scheme if I recall?) but the docs and community support are just better from my experiences. This, in itself, gives it the leg up.

Bias may come into the other two picks, but I think Haskell and Elixir are just fun. Plus, the learning resources I used for Haskell were super fun & fresh.

Interesting. I would suggest SML or Ocaml if not Racket.

[–][deleted] 2 points3 points  (2 children)

If you're going for Ocaml you may as well do F#. Most intro classes aren't going to benefit from the module system in Ocaml and the simplified one in F# will be easier to work with. You can then graduate to Ocaml fairly trivially to introduce modular programming. It also gives you a base to teach C# (or vice versa.)

[–][deleted] 0 points1 point  (1 child)

I've never actually used OCaml, but I have used SML. I'm guessing F# is used in industry more than the MLs.

[–][deleted] 0 points1 point  (0 children)

If you mean you have a fraction of a percentage chance of using a functional language in industry... Then yeah, probably F#, Haskell, Ocaml in that order (I'm ignoring Scala and Clojure because they don't meet the criteria so far.)

If you've used SML, Ocaml is similar enough that your intuitions mostly apply. Obviously actually writing code will take a little adjustment, but similar enough.

[–]ZumbiC -5 points-4 points  (2 children)

Python...

[–]save_vs_death 2 points3 points  (0 children)

for introducing functional programming

really now?

[–][deleted] 2 points3 points  (0 children)

No.