|
|
|
|
|
by sodapopcan
621 days ago
|
|
Ha, ok so I gotta give one of these "that's a really strange thing to get hung up on" responses. Erlang and Elixir don't overload the `+` operator. In fact, they don't overload ANY operators. If you can forgive the syntactic choice of the operator itself (which I think it pretty fair considering Erlang predates Postgres by a decade and F# by two decades), this allows them to be dynamic while maintaining a pretty high level of runtime type safety. For example, one of the "subtle bugs" people refer to when criticizing dynamic languages (even strongly typed dynamic languages) is the following would work when both args are given strings or numbers: function add(a, b) { a + b }
Erlang/Elixir eliminate this particular subtle bug (and it goes beyond strings and numbers) since: def add(a, b), do: a + b
will only work on numbers and raise if given strings. |
|
Interesting table here highlighting old programming languages https://en.wikipedia.org/wiki/Relational_operator#Standard_r...