Hacker News new | ask | show | jobs
by mtndew4brkfst 731 days ago
It was still possible to do this in prior versions of Elixir, just syntactically noisy. Any layer which isn't a vanilla map needs Access.key, as in:

    get_in(struct, [Access.key(:foo), :bar])
1 comments

But that’s way less clear than just

    if struct.foo do struct.foo.bar else nil end
Sure, this snippet is a trivial example and doesn't sufficiently motivate get_in and family, which can be much more powerful when needs aren't so simple.

It's also very hard to be as concise with more vanilla syntax when competing with put_in/update_in instead. The pattern and ability to generalize it is valuable IME.