4 ms·
I believe they literally compile down to case statements.
by lawik 3y ago
I believe they literally compile down to case statements.
- ch4s3 3y agoHi Lars! Of course you're right[1], but function heads can handle more complicated patterns than case statements, and compile down to a more complicated set of cases. So you can think of function heads/guards as an abstraction over case statements (if you squint a little). [1] https://learnyousomeerlang.com/syntax-in-functions https://learnyousomeerlang.com/syntax-in-functions
- OkayPhysicist 3y agoTo my knowledge, that's not true (at least for Elixir), and that's not what your source says, either. So long as you wrap your case arguments into a tuple, you can have the same level of complexity in either.
- phanimahesh 3y agoThey are equally powerful, however the multi head approach is more convenient. You can for example have a macro inject a bunch of functions, and override just one specific head, which becomes unwieldy and significantly less maintainable with just case.