Brace expansion using ranges: Difference between revisions

Content added Content deleted
Line 870: Line 870:
=={{header|Julia}}==
=={{header|Julia}}==
Julia currently does not handle certain trigraphs in strings correctly, such as 🌶, so that test is omitted.
Julia currently does not handle certain trigraphs in strings correctly, such as 🌶, so that test is omitted.
<lang julia>prefixzeros(str) = length(str) > 1 && str[1] == '0' ? length(str) : 0
<lang julia>padzeros(str) = (len = length(str)) > 1 && str[1] == '0' ? len : 0


function ranged(str)
function ranged(str)
Line 880: Line 880:
if '0' <= rang[1][1] <= '9' || rang[1][1] == '-'
if '0' <= rang[1][1] <= '9' || rang[1][1] == '-'
x, y = parse(Int, rang[1]), parse(Int, rang[2])
x, y = parse(Int, rang[1]), parse(Int, rang[2])
pad = max(prefixzeros(rang[1]), prefixzeros(rang[2]))
pad = max(padzeros(rang[1]), padzeros(rang[2]))
return [string(x, pad=pad) for x in range(x, step=(x < y) ? delta : -delta, stop=y)]
return [string(x, pad=pad) for x in range(x, step=(x < y) ? delta : -delta, stop=y)]
else
else