Subleq: Difference between revisions
Content added Content deleted
(Add Swift) |
|||
Line 1,735: | Line 1,735: | ||
{{out}} |
{{out}} |
||
<pre>HELLO, WORLD.</pre> |
<pre>HELLO, WORLD.</pre> |
||
=={{header|Swift}}== |
|||
{{trans|Python}} |
|||
<lang swift>func subleq(_ inst: inout [Int]) { |
|||
var i = 0 |
|||
while i >= 0 { |
|||
if inst[i] == -1 { |
|||
inst[inst[i + 1]] = Int(readLine(strippingNewline: true)!.unicodeScalars.first!.value) |
|||
} else if inst[i + 1] == -1 { |
|||
print(String(UnicodeScalar(inst[inst[i]])!), terminator: "") |
|||
} else { |
|||
inst[inst[i + 1]] -= inst[inst[i]] |
|||
if inst[inst[i + 1]] <= 0 { |
|||
i = inst[i + 2] |
|||
continue |
|||
} |
|||
} |
|||
i += 3 |
|||
} |
|||
} |
|||
var prog = [ |
|||
15, 17, -1, 17, -1, -1, 16, 1, -1, 16, 3, -1, 15, 15, |
|||
0, 0, -1, 72, 101, 108, 108, 111, 44, 32, 119, 111, |
|||
114, 108, 100, 33, 10, 0 |
|||
] |
|||
subleq(&prog) |
|||
</lang> |
|||
{{out}} |
|||
<pre>Hello, world!</pre> |
|||
=={{header|Tcl}}== |
=={{header|Tcl}}== |