logoalt Hacker News

solid_fuelyesterday at 8:25 PM2 repliesview on HN

I find the optional parentheses, and the way that keyword lists are defined to be the two biggest stumbling blocks when I come back to Elixir after a while way.

Coming from other languages, I find that

    example("with", 3, extra: "arguments", as: "a", keyword: "list")
being equivalent to

    example("with", 3, [extra: "arguments", as: "a", keyword: "list"])
and

    example "with", 3, extra: "arguments", as: "a", keyword: "list"
always takes some extra mental effort to get through, especially when there's no parenthesis. But I appreciate not having to write all the extra brackets and parens when I get going, so I think it's a fair tradeoff.

Replies

arcanemachineryesterday at 11:04 PM

Elixir has enough syntax sugar to cause diabetes.

Personally, I like the flexibility, but yes there are a lot of rules to keep in mind.

dqvtoday at 2:43 AM

one more ;)

    example("with", 3, [{:extra, "arguments"}, {:as, "a"}, {:keyword, "list"}])

    iex> [{:extra, "arguments"}, {:as, "a"}, {:keyword, "list"}] = [extra: "arguments", as: "a", keyword: "list"]
    [extra: "arguments", as: "a", keyword: "list"]