Elixir and Erlang added to Leetcode

As far as I know, there hasn’t been any official announcement of this, but over the past week or so, Leetcode.com has been rolling out support for Elixir, Erlang, and Racket. At this point almost all of the popular questions accept Elixir solutions. A couple things I’ve noticed:

  • The editor needs some fixing in Elixir mode - the autoindentation seems especially broken, inserting tons of extra whitespace
  • For the linked list questions, custom ListNode structs are used, instead of standard Elixir Lists.

I’m wondering what others in the community think about this. Have you ever had to solve Leetcode problems for an interview? Do you think interviewers will start using Leetcode for Elixir positions?

6 Likes

Many questions that require mutation are extremely hard to solve in Erlang/Elixir (because in many cases you need to use some sort of a zipper).

Questions involving backtracking are very easy to implement in Erlang/Elixir due to immutability and the underlying optimization toward immutable data structures, but dynamic programming questions are usually harder to solve.

There’s no stack overflow in Erlang/Elixir, even for very deep body recursions.

1 Like

This is super cool!

Really cool to see more functional languages being used in such coding platforms. I think it’ll force me to think more about immutability, recursion, and pattern-matching. It’s a different kind a programming that what I do professionally. Before solving some of those coding challenges, I’ve never thought about recursively updating a struct at work like this :thinking:.

I already solved some easy questions, I really like to use and abuse pattern-matching for answering (here for example :smiling_imp:) but as @Aetherus mentioned, many questions still require mutability :man_shrugging:

Anyone has some good resources to recommend to learn data structures and algorithms with a functional programming language?

1 Like

I recommend trying Advent of Code with Elixir (or other FP language)

3 Likes

Whenever I start a new language, I usually do some exercises online in Hackerrank to work up basic speed.

I noticed that hackerrank is awful for elixir currently. Some people mentioned exercism instead. Can someone provide a very rough indicator of the top three sites that have ready made exercises with tests that have decent elixir support? Thanks!

(On an unrelated note, good riddance to golang and doing any more interview code screens with golang for hopefully a very long time.)

Exercism is great - imo this is the best place to start. It ensures that you learn not only the Elixir language but also Functional Programming concepts which are especially important if you are coming from OOP. The best part of Exercism is that you get real code review from the mentors on each exercise.

Advent of Code is a great place to sharpen your skills after you’ve got the fundamentals under your belt. These will really push the boundaries of your Elixir understanding. Finishing all 25 levels is quite an accomplishment.

Honorable mention for Codewars, but it’s not really on the same level as the aforementioned duo. I guess leetcode is in the same boat now too, but I haven’t tried it myself.

3 Likes

I will go with exercism for now.

My goals are slightly different. I know typed and untyped FP very well. I will use the platform to quickly jump into short exercises multiple times a day in between other tasks. I am not looking for any real challenges or hard problems, just very easy problems that I can repeatedly solve and build up speed in typing out elixir code snippets that are functionally correct. I don’t want any human feedback, just some automated tests with red/green.

Exercism gives you test suites already baked when you download an exercise. The human feedback is mostly for coding style, efficiency, number of lines etc. – to improve upon the final solution. The tests you can and should use before that.

2 Likes

I like it so far. I am using in browser editor to minimize time to start exercises.

The exercise descriptions are a little wordy, but I can get over that.

Continuing to enjoy exercism. I love the graphical diagram of concepts. I wish the exercises didn’t bother with any context and just presented a short description, inputs and outputs.

After I finish exercism, is there anything similar where I can do short execises inside of a browser with provided tests for using Phoenix for implementing APIs?

1 Like

Not sure for Phoenix but you can revisit Advent of Code. They have pretty tough exercises.