#!/usr/bin/ruby func double (n) { n * 2 }; func halve (n) { int(n / 2) }; func ethiopic_mult(a, b) { var r = 0; while (a > 0) { a.is_even || (r += b); a = halve(a); b = double(b); }; return r; } say ethiopic_mult(17, 34);