sodapopcan
Is it feasible for Elixir to introduce dedicated float operators?
Given:
(apologies for the ping, José!)
Is there a possibility that we could ever get dedicated float operators (+., *., >., …) like in OCaml and Gleam?
I’ve considered the following (what am I missing?):
-
Is there anything that would make this a technical no-go?
…or maybe it’s already being considered? -
Would it have to be a 2.0 feature?
I imagine adding it as opt-in totally defeats the purpose, though I could see a path where we’d get a warning for doing1 / 1.0vs an error for1 /. 1.0. I’m a bit fuzzy on the criteria for this as, for example, I believe the removal of imperative assignment was a post-1.0 feature, no? -
We would need
Integer.to_float/1andFloat.to_integer/1functions.
What do you all think? Do any of you work on a codebase that would make this a nightmare scenario for you? Do math-heavy libraries like Nx rely heavily on overloaded operators?
Trending in Discussions
Other Trending Topics
Chat & Discussions>Discussions
Latest on Elixir Forum
Categories:
Sub Categories:
Forums
Popular Tags
- #ecto
- #liveview
- #troubleshooting
- #learning-elixir
- #deployment
- #library
- #erlang
- #testing
- #genserver
- #mix
- #absinthe
- #remote-other
- #otp
- #plug
- #how-to-question
- #macros
- #postgres
- #channels
- #elixirconf
- #exunit
- #discussion
- #code-sync
- #javascript
- #podcasts
- #onsite
- #dialyzer
- #docker
- #authentication
- #umbrella
- #full-time-contract
- #podcasts-by-brainlid
- #ecto-query
- #elixir-ls
- #phoenix_html
- #iex
- #blog-post
- #graphql
- #genstage
- #ai
- #elixirconf-us
- #websockets
- #supervisor
- #advent-of-code
- #distillery
- #processes
- #api
- #forms
- #metaprogramming
- #hex
- #performance










First 2 of 2 Posts
josevalim
Why would we want to do that?
Gleam does not really have multiple clauses, so it makes sense there, but in Elixir and Erlang they are very common. So I don’t see the benefit in going in this direction. Especially when there are so many statically typed languages with this exact feature too (Haskell, Go, Rust, etc).
sodapopcan
My assumption was that it would make it possible to infer floats where guards are not needed:
Because those languages aren’t Elixir…
It just always felt a bit out of place not having them given that operators are otherwise not overloaded (at least in the core language).
I’m not sure I follow how multiple clauses comes into play since Haskell also has them. Although your answer along with the otherwise deafening silence has pretty much answered my question! It’s not a feature I’m dying for or anything which is why I created this as discussion and not a proposal.