What's a good functional programming language to start with?

and were the two more voted options, guess I will start with thanks @casmajavi @zipheir @amiloradovsky @jc00ke @veer66 @technomancy @MutoShack


I personally really like (or any implementation, really), but a lot of people tend to like .

I've tried some and it's also very nice.

is the money maker, I think. If you want a job, try learning Clojure (I don't know any Clojure, maybe that's why I'm still unemployed 😉)

@MutoShack @constrict0r I learned Racket and Guile. 😀

I conducted many experiments using Common Lisp.

I got quite a number of things done in Clojure. 😅
@MutoShack @constrict0r I took a week just for implementing true in Haskell. 😭

To answer your original question:

IMO, it should be Racket.
@cosine It was typo because of auto correct. It should be trie.

@veer66 @MutoShack @constrict0r another vote for Racket as a starting point. The learning materials are top notch.

Depends on where you're coming from, but I think that Elixir is a great first FP language.

I'd recommend / , because it is simple and clean enough to grasp the main ideas and don't get too distracted by typing errors.
Or, if you are into types, try .

I would not recommend starting with Common Lisp, or even Emacs Lisp, since these aren't as clean as Scheme.
Nor would I recommend to start with the popular language, named after the first name of a mathematician, unless you want to hate formal logic for the rest of your life…

@amiloradovsky @constrict0r In my case I'm learning FP with . Seems to be a nice first lisp language. Indeed I came to lisp universe because I'm reading the How to Design Programs book.

@constrict0r Obligatory vote for Scheme, although if you’re talking pure functional, s/Scheme/Haskell/. Well, s/Scheme/& and Haskell/, because everyone should learn a Lisp.

@constrict0r Well, Racket ⊃ Scheme, so you'll learn both. :)

@constrict0r @casmajavi @zipheir @amiloradovsky @jc00ke @veer66 @technomancy @MutoShack Good choice! One nice thing with Racket is you'll have both the untyped (more classic Lisp/Scheme tradition) dialect, and Typed Racket, which is a bit idiosyncratic but a good taste of typed FP too.

@constrict0r Elm taught me Haskell syntax, but leaves out a lot of the more confusing concepts. It's also very immediate and visual.

@constrict0r as nobody said nothing about it, #scala. Really not a good functional programming language as you could be expecting but depending on your needs you can use it from a range of just a better java syntax up to crazy levels of haskell like. I feel the language has too many unique quirks and it's on the jvm which for me is its worst problem, but nonetheless could be your thing. And most important, it's the only fp language that I see conpanies actually recruiting for.

@constrict0r if you want to learn it for experience and to understand fp concepts I'd go with haskell as it's the more pure and closer to ideal for learning those things. As a fallback ocaml. Those are the two I know universities go for when teaching #fp.

@vascorsd @constrict0r And to confuse you even more by choices, I'd add Elixir and Erlang.
If you are interested in AST manipulation and optional garbage collection, "Nim" - to some extent, functional programming is possible with it.

@vascorsd @constrict0r I second this about scala and agree with all points. also, I use scala daily and my company hires scala devs actively. scala plus a few standard libraries like scalaz, shapeless and cats, plus idiomatic usage, and it has many of the advantages of e. g. Haskell. scalajs (for running in browser) and scala-native (for compiling binaries) are mature and usable. so it's fairly practical too.

@constrict0r For getting your feet wet with FP: . For actually doing stuff: ( -ish syntax, .NET ecosystem). For *real* FP: .

@constrict0r If you start with Elixir you can jump right into the development of

@frank87 I wanted to learn clojure but with the actual situation of java elixir sounds like a great alternative.

Sign in to participate in the conversation
Functional Café is an instance for people interested in functional programming and languages.