Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
34
Task/Number-names/Raku/number-names-1.raku
Normal file
34
Task/Number-names/Raku/number-names-1.raku
Normal file
|
|
@ -0,0 +1,34 @@
|
|||
constant @I = <zero one two three four five six seven eight nine
|
||||
ten eleven twelve thirteen fourteen fifteen sixteen seventeen eighteen nineteen>;
|
||||
constant @X = <0 X twenty thirty forty fifty sixty seventy eighty ninety>;
|
||||
constant @C = @I X~ ' hundred';
|
||||
constant @M = (<0 thousand>,
|
||||
((<m b tr quadr quint sext sept oct non>,
|
||||
(map { ('', <un duo tre quattuor quin sex septen octo novem>).flat X~ $_ },
|
||||
<dec vigint trigint quadragint quinquagint sexagint septuagint octogint nonagint>),
|
||||
'cent').flat X~ 'illion')).flat;
|
||||
|
||||
sub int-name ($num) {
|
||||
if $num.substr(0,1) eq '-' { return "negative {int-name($num.substr(1))}" }
|
||||
if $num eq '0' { return @I[0] }
|
||||
my $m = 0;
|
||||
return join ', ', reverse gather for $num.flip.comb(/\d ** 1..3/) {
|
||||
my ($i,$x,$c) = .comb».Int;
|
||||
if $i or $x or $c {
|
||||
take join ' ', gather {
|
||||
if $c { take @C[$c] }
|
||||
if $x and $x == 1 { take @I[$i+10] }
|
||||
else {
|
||||
if $x { take @X[$x] }
|
||||
if $i { take @I[$i] }
|
||||
}
|
||||
take @M[$m] // die "WOW! ZILLIONS!\n" if $m;
|
||||
}
|
||||
}
|
||||
$m++;
|
||||
}
|
||||
}
|
||||
|
||||
while '' ne (my $n = prompt("Number: ")) {
|
||||
say int-name($n);
|
||||
}
|
||||
9
Task/Number-names/Raku/number-names-2.raku
Normal file
9
Task/Number-names/Raku/number-names-2.raku
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
use Lingua::EN::Numbers; # Version 2.4.0 or higher
|
||||
|
||||
put join "\n", .&cardinal, .&cardinal(:improper) with -7/4;
|
||||
|
||||
printf "%-7s : %19s : %s\n", $_, cardinal($_), cardinal($_, :denominator(16)) for 1/16, 2/16 ... 1;
|
||||
|
||||
put join "\n", .&cardinal, .&cardinal-year, .&ordinal, .&ordinal-digit with 1999;
|
||||
|
||||
.&cardinal.put for 6.022e23, 42000, π;
|
||||
Loading…
Add table
Add a link
Reference in a new issue