diff options
Diffstat (limited to 'rng.ha')
| -rw-r--r-- | rng.ha | 13 |
1 files changed, 12 insertions, 1 deletions
@@ -12,6 +12,7 @@ export fn main() void = { "Random Number Generator", ('n', "number", "Number of random numbers to print (default: 6)"), ('m', "max", "Max number than can be generated (default: 110)"), + ('S', "separator", "The separator to use when displaying the numbers (default: \\n)"), ('s', "Sort the numbers"), ('d', "Avoid duplicates")); defer getopt::finish(&cmd); @@ -20,12 +21,15 @@ export fn main() void = { let max = 110u32; let dosort = false; let nodups = false; + let sep = "\n"; for (let opt .. cmd.opts) { switch (opt.0) { case 'n' => nb = strconv::stoz(opt.1)!; case 'm' => max = strconv::stou32(opt.1)!; + case 'S' => + sep = opt.1; case 's' => dosort = true; case 'd' => @@ -54,9 +58,16 @@ export fn main() void = { sort::sort(rngs: []opaque, size(u32), &cmp::u32s); }; + printrngs(rngs, sep); +}; + +fn printrngs(rngs: []u32, sep: str) void = { + let s = ""; for (let rng .. rngs) { - fmt::printfln("{}", rng)!; + fmt::printf("{}{}", s, rng)!; + s = sep; }; + fmt::println()!; }; fn contains(a: []u32, b: u32) bool = { |
