Exponentiation order: Difference between revisions

From Rosetta Code
Content added Content deleted
(→‎{{header|REXX}}: Add Python)
Line 37: Line 37:
[\**] 5,3,2 ───► 2 9 1953125</pre>
[\**] 5,3,2 ───► 2 9 1953125</pre>


=={{header|REXX}}==
=={{header|Python}}==
<lang python>>>> 5**3**2
<lang python>>>> 5**3**2
1953125
1953125

Revision as of 18:24, 18 March 2014

Exponentiation order is a draft programming task. It is not yet considered ready to be promoted as a complete task, for reasons that should be found in its talk page.

This task will demonstrate the order of exponentiation   (xy)   when there are multiple exponents.

(Most languages usually support one of   **,   ^,   or     or somesuch.)

task requirements

Show the result of a language's evaluation of multiple exponentiation (either as an integer or floating point).

Use whatever exponentiation operator for your language; use a comment showing what the operator(s) is/are.

Using whatever operator or syntax your language supports (if any), show the results in three lines (with identification):

  •   5**3**2
  •   (5**3)**2
  •   5**(3**2)

If there are other methods (or formats) of multiple exponentiations, show them as well.

See also



Perl 6

<lang perl6>sub demo($x) { say " $x\t───► ", EVAL $x }

demo '5**3**2'; demo '(5**3)**2'; demo '5**(3**2)'; demo '[**] 5,3,2'; demo '[\**] 5,3,2';</lang>

Output:
  5**3**2	───► 1953125
  (5**3)**2	───► 15625
  5**(3**2)	───► 1953125
  [**] 5,3,2	───► 1953125
  [\**] 5,3,2	───► 2 9 1953125

Python

<lang python>>>> 5**3**2 1953125 >>> (5**3)**2 15625 >>> 5**(3**2) 1953125 >>> # The following is not normally done >>> try: from functools import reduce # Py3K except: pass

>>> reduce(pow, (5, 3, 2)) 15625 >>> </lang>

REXX

<lang rexx>/*REXX program demonstrates various ways of multiple exponentiations. */ /*┌────────────────────────────────────────────────────────────────────┐

 │ The REXX language uses      **      for exponention.               │
 │                   Also,    *  *     can be used.                   │
 └────────────────────────────────────────────────────────────────────┘*/

say ' 5**3**2 ───► ' 5**3**2 say ' (5**3)**2 ───► ' (5**3)**2 say ' 5**(3**2) ───► ' 5**(3**2)

                                      /*stick a fork in it, we're done.*/</lang>

output

   5**3**2   ───►  15625
   (5**3)**2 ───►  15625
   5**(3**2) ───►  1953125