Post Reply 
Python to RPN converter
06-28-2018, 08:04 PM
Post: #38
RE: Python to RPN converter
While the syntax of hy is similar to Clojure we can still use a while-loop and mutate local variables.
This makes the translation from Python straight forward.
We can even break out of a loop.

I've translated a few of the other examples:

Celsius to Fahrenheit
Code:
(defn fahrenheit [celsius]
  (+ (/ (* 9 celsius) 5) 32))

Quadratic Equation
Code:
(defn qe [a b c]
  (setv
    p (/ b a -2)
    q (/ c a)
    D (sqrt (- (** p 2) q)))
  [(+ p D) (- p D)])

Greatest Common Divisor
Code:
(defn gcd [a b]
  (while (!= b 0)
    (setv 
      r (% a b)
      a b
      b r))
  a)

Factors of a Number
Code:
(defn factor [n]
  (setv p 2)
  (while (> n 1)
    (if (> (** p 2) n)
      (do
        (print n)
        (break)))
    (while (= (% n p) 0)
      (do
        (print p)
        (setv n (// n p))))
    (setv p (+ p 1))))

Circumference of an Ellipse
Code:
(defn ellipse [a b]
  (setv
    u 1
    v (/ b a)
    s (/ (+ 1 (** v 2)) 2)
    t 1)
  (while (= 0 0)
    (setv m (/ (+ u v) 2))
    (if (= m u)
      (break))
    (setv
      w (/ (- u v) 2)
      v (sqrt (* u v))
      u m
      s (- s (* t (** w 2)))
      t (* t 2)))
  (/ (* 2 pi a s) u))


It appears that print is handled as a function in hy.
Thus I had to extend the compiler a bit.
Otherwise translating the factor function would lead to errors.

It is mapped to AVIEW:
Code:
function = {
    # built-in
    'abs' : 'ABS',
    'int' : 'INT',
    'round' : 'RND',
    'print' : 'AVIEW',
    # math
(...)
Find all posts by this user
Quote this message in a reply
Post Reply 


Messages In This Thread
Python to RPN converter - tcab - 02-16-2018, 05:27 AM
RE: Python to RPN converter - pier4r - 02-16-2018, 06:26 AM
RE: Python to RPN converter - salvomic - 02-16-2018, 09:47 AM
RE: Python to RPN converter - rprosperi - 02-16-2018, 02:34 PM
RE: Python to RPN converter - charger73 - 02-16-2018, 02:38 PM
RE: Python to RPN converter - Nigel (UK) - 02-16-2018, 03:04 PM
RE: Python to RPN converter - tcab - 02-16-2018, 11:06 PM
RE: Python to RPN converter - compsystems - 02-17-2018, 01:06 AM
RE: Python to RPN converter - StephenG1CMZ - 02-18-2018, 09:21 AM
RE: Python to RPN converter - tcab - 02-18-2018, 10:27 AM
RE: Python to RPN converter - StephenG1CMZ - 02-18-2018, 02:32 PM
RE: Python to RPN converter - tcab - 02-18-2018, 09:25 PM
RE: Python to RPN converter - Thomas Okken - 02-18-2018, 12:59 PM
RE: Python to RPN converter - tcab - 02-18-2018, 01:13 PM
RE: Python to RPN converter - StephenG1CMZ - 02-19-2018, 07:16 AM
RE: Python to RPN converter - tcab - 02-19-2018, 07:29 AM
RE: Python to RPN converter - StephenG1CMZ - 02-19-2018, 07:48 AM
RE: Python to RPN converter - tcab - 02-19-2018, 08:17 AM
RE: Python to RPN converter - pier4r - 02-19-2018, 11:15 AM
RE: Python to RPN converter - StephenG1CMZ - 02-19-2018, 07:36 PM
RE: Python to RPN converter - StephenG1CMZ - 02-20-2018, 02:28 PM
RE: Python to RPN converter - tcab - 02-20-2018, 10:39 PM
RE: Python to RPN converter - MikeOShea - 06-01-2018, 01:39 AM
RE: Python to RPN converter - Thomas Klemm - 06-23-2018, 10:33 PM
RE: Python to RPN converter - tcab - 06-24-2018, 10:56 PM
RE: Python to RPN converter - Thomas Klemm - 06-25-2018, 05:00 PM
RE: Python to RPN converter - Thomas Klemm - 06-28-2018, 04:07 PM
RE: Python to RPN converter - Thomas Klemm - 06-28-2018 08:04 PM
RE: Python to RPN converter - tcab - 11-02-2018, 04:43 AM
RE: Python to RPN converter - Namir - 11-03-2018, 07:32 PM
RE: Python to RPN converter - tcab - 11-04-2018, 06:06 AM
RE: Python to RPN converter - Thomas Okken - 11-04-2018, 02:02 PM
RE: Python to RPN converter - tcab - 11-04-2018, 10:25 PM
RE: Python to RPN converter - Namir - 11-04-2018, 08:07 PM
RE: Python to RPN converter - tcab - 11-04-2018, 09:59 PM
RE: Python to RPN converter - cdmackay - 12-11-2018, 07:05 PM
RE: Python to RPN converter - tcab - 12-11-2018, 10:46 PM
RE: Python to RPN converter - cdmackay - 12-11-2018, 11:27 PM
RE: Python to RPN converter - compsystems - 06-09-2020, 04:12 PM
RE: Python to RPN converter - tcab - 06-12-2021, 03:42 AM
RE: Python to RPN converter - tcab - 06-12-2021, 03:54 AM
RE: Python to RPN converter - tcab - 09-15-2023, 11:09 AM
RE: Python to RPN converter - dm319 - 09-29-2023, 08:26 PM
RE: Python to RPN converter - Thomas Klemm - 02-16-2024, 02:35 PM



User(s) browsing this thread: 1 Guest(s)