Giter VIP home page Giter VIP logo

Comments (7)

jemc avatar jemc commented on July 17, 2024 2

To be clear, we already have a method called pow that does this - it's just that there isn't any syntax sugar for having the compiler translate a binary operator to that method call. I think you already know this, I just wanted to be clear for anyone reading along.

I wouldn't be opposed to such a change.

If we do this, I think the best choice for the operator is probably ** - we can't/shouldn't use ^ because it already has another meaning in Pony (it's the ephemeral type indicator).

from rfcs.

EpicEric avatar EpicEric commented on July 17, 2024 1

@SCKelemen Yes. The syntatic sugar is "xor". Example: https://playground.ponylang.io/?gist=19f5ff394234d6e19ec5bcd1b66ea9d0

from rfcs.

mfelsche avatar mfelsche commented on July 17, 2024

pow is only defined on FloatingPoint, as well as powi which are implemented using http://llvm.org/docs/LangRef.html#llvm-pow-intrinsic and http://llvm.org/docs/LangRef.html#llvm-powi-intrinsic.

There is no pow in C or C++ as well that operates on integer types. it is only defined on float, double and long double. (This sheds some light on the why: https://stackoverflow.com/questions/2398442/why-isnt-int-powint-base-int-exponent-in-the-standard-c-libraries)

So there is no easy way to implement this without casting, if you don't write it completely in pony.

from rfcs.

mfelsche avatar mfelsche commented on July 17, 2024

Maybe, if this is going to be implemented, Exponentiation by Squaring is a good candidate.

from rfcs.

moonheart08 avatar moonheart08 commented on July 17, 2024

I'm fine if POW is float only by necessity. A software implementation of it for integers would not be needed, but it would be nice.

from rfcs.

SCKelemen avatar SCKelemen commented on July 17, 2024

So, is there an XOR operator, then?

from rfcs.

igotfr avatar igotfr commented on July 17, 2024

I suggest change the current ephemeral type indicator (^) to another like # or whatever

motivation: use of ^ to exponentiation

languages and others that use ^ as exponentiation: Haskell, Julia, Matlab, R, Lua, Google, calculators

from rfcs.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.