I was noticing that the exponentiation operator `^` in `math` is not compatible 
with floats so I thought about adding it as an alternative to `pow` for floats, 
and restricting the original generic `^` implementation to `SomeInteger`.

But then I noticed that there is an open pull request 
([https://github.com/nim-lang/Nim/pull/4666](https://github.com/nim-lang/Nim/pull/4666))
 suggesting to add `**` as exponentiation for floats. Is there any decision on 
which operator "should" be used for exponentiation?

I have read that Haskell supports several different exponentiation operators 
(see 
[https://wiki.haskell.org/Power_function](https://wiki.haskell.org/Power_function))
 - they basically implement different algorithms, such that you can pick the 
one matching the capabilities of any user defined type. My impression till now, 
though, is that Nim is a more "practical" language, and with my background from 
Python (and working in an applied field - machine learning) I think that It 
would make more sense to stick to one operator, and let user defined types 
implement this in the most fitting way. Or is it the plan to have several 
different exponentiation operator also for the Nim standard `math` library?

Reply via email to