53 lines
1 KiB
D
53 lines
1 KiB
D
import std.algorithm;
|
|
import std.array;
|
|
import std.conv;
|
|
import std.stdio;
|
|
import std.uni;
|
|
|
|
void printVerse(string name) {
|
|
auto sb = name.map!toLower.array;
|
|
sb[0] = sb[0].toUpper;
|
|
|
|
string x = sb.to!string;
|
|
string y;
|
|
switch(sb[0]) {
|
|
case 'A':
|
|
case 'E':
|
|
case 'I':
|
|
case 'O':
|
|
case 'U':
|
|
y = x.map!toLower.to!string;
|
|
break;
|
|
default:
|
|
y = x[1..$];
|
|
break;
|
|
}
|
|
string b = "b" ~ y;
|
|
string f = "f" ~ y;
|
|
string m = "m" ~ y;
|
|
switch (x[0]) {
|
|
case 'B':
|
|
b = y;
|
|
break;
|
|
case 'F':
|
|
f = y;
|
|
break;
|
|
case 'M':
|
|
m = y;
|
|
break;
|
|
default:
|
|
// no adjustment needed
|
|
break;
|
|
}
|
|
|
|
writeln(x, ", ", x, ", bo-", b);
|
|
writeln("Banana-fana fo-", f);
|
|
writeln("Fee-fi-mo-", m);
|
|
writeln(x, "!\n");
|
|
}
|
|
|
|
void main() {
|
|
foreach (name; ["Gary","Earl","Billy","Felix","Mary","steve"]) {
|
|
printVerse(name);
|
|
}
|
|
}
|