19 lines
436 B
Raku
Executable file
19 lines
436 B
Raku
Executable file
#!/usr/bin/env raku
|
||
|
||
#| convert arguments or stdin to fullwidth characters
|
||
unit sub MAIN(*@args);
|
||
|
||
sub widen(Str $str) {
|
||
my %map = (['!'..'~'] Z ['!'..'~']).Map, ' ' => ' ';
|
||
my @rejects = $str.comb.grep: {$^x !~~ /\s/ && $^x ∉ %map};
|
||
note "unknown characters: @rejects.join(', ')" if @rejects;
|
||
$str.trans: %map
|
||
}
|
||
|
||
if @args > 0 {
|
||
say widen @args.join: ' '
|
||
} else {
|
||
say widen $_ for $*IN.lines
|
||
}
|
||
|
||
# vim: set ft=raku :
|