Balanced ternary: Difference between revisions
Content added Content deleted
Alextretyak (talk | contribs) (→{{header|11l}}: Small refactor) |
Alextretyak (talk | contribs) m (→{{header|11l}}: privating) |
||
Line 30: | Line 30: | ||
<syntaxhighlight lang="11l">T BalancedTernary |
<syntaxhighlight lang="11l">T BalancedTernary |
||
-:str2dig = [‘+’ = 1, ‘-’ = -1, ‘0’ = 0] |
. -:str2dig = [‘+’ = 1, ‘-’ = -1, ‘0’ = 0] |
||
-:dig2str = [1 = ‘+’, -1 = ‘-’, 0 = ‘0’] |
. -:dig2str = [1 = ‘+’, -1 = ‘-’, 0 = ‘0’] |
||
-:table = [(0, -1), (1, -1), (-1, 0), (0, 0), (1, 0), (-1, 1), (0, 1)] |
. -:table = [(0, -1), (1, -1), (-1, 0), (0, 0), (1, 0), (-1, 1), (0, 1)] |
||
[Int] digits |
[Int] digits |
||
Line 45: | Line 45: | ||
R BalancedTernary(reversed(inp).map(c -> BalancedTernary.:str2dig[c])) |
R BalancedTernary(reversed(inp).map(c -> BalancedTernary.:str2dig[c])) |
||
F :int2ternary(n) |
. F :int2ternary(n) |
||
I n == 0 |
I n == 0 |
||
R [Int]() |
R [Int]() |
||
Line 65: | Line 65: | ||
R reversed(.digits).map(d -> .:dig2str[d]).join(‘’) |
R reversed(.digits).map(d -> .:dig2str[d]).join(‘’) |
||
F :neg(digs) |
. F :neg(digs) |
||
R digs.map(d -> -d) |
R digs.map(d -> -d) |
||
Line 71: | Line 71: | ||
R BalancedTernary(.:neg(.digits)) |
R BalancedTernary(.:neg(.digits)) |
||
F :add(a, b, =c = 0) |
. F :add(a, b, =c = 0) |
||
I !(!a.empty & !b.empty) |
I !(!a.empty & !b.empty) |
||
I c == 0 |
I c == 0 |