Ethiopian multiplication: Difference between revisions
Content added Content deleted
(clojure impl) |
|||
Line 444: | Line 444: | ||
(iterate halve x) |
(iterate halve x) |
||
(iterate twice y))))))) |
(iterate twice y))))))) |
||
(defn emult2 [x y] |
|||
(loop [a x b y r 0] |
|||
(if (= a 1) |
|||
(+ r b) |
|||
(if (even a) |
|||
(recur (halve a) (twice b) r) |
|||
(recur (halve a) (twice b) (+ r b)))))) |
|||
</lang> |
</lang> |
||