CJam - 142 / GolfScript - 144
{" had| a |farm|68, |68 8|here|Old MacDonald765|, E-I-E-I-O|10,
And on that 5 he7690,
With3 2 and3 t2,
Here4t24everyw23,
10!"'|/~A,{`/\*}/}:F;
Verwendung: "cow""moo"F
Für GolfScript ersetzen Sie '|
mit "|"
und A
mit10
Erläuterung:
Der Schlüsselteil ist A,{`/\*}/
:
A,{...}/
Führt den Block für jede Zahl von 0 bis 9 aus (A = 10)
`
Konvertiert die Zahl in eine Zeichenfolge
/\*
Ersetzt eine Zeichenfolge: Wenn wir auf dem Stapel haben, "bar" "foo 1 baz" "1"
dann /
teilt die Zeichenfolge das Ergebnis auf ["foo " " baz"]
, \
tauscht dieses Array mit dem vorherigen Element ("bar") und *
schließt sich dem Array an, woraus sich ergibt"foo bar baz"
Der Code ersetzt also jede Zahl in der Hauptzeichenfolge durch eine Zeichenfolge, die sich zuvor auf dem Stapel befunden hat. Wir haben das Tier und den Ton, dann "hatten", "ein" usw. und schließlich ", EIEIO" und die Hauptsaite "10, ...!". Um zu vermeiden, dass zu viele Anführungszeichen verwendet werden, füge ich alle Zeichenfolgen (außer den Parametern) in eine Zeichenfolge ein, teile sie dann auf und lösche das resultierende Array ( '|/~
).
Die Hauptzeichenfolge durchläuft die folgenden Transformationen:
10,
And on that 5 he7690,
With3 2 and3 t2,
Here4t24everyw23,
10!
ersetzen "0"
durch ", E-I-E-I-O"
:
1, E-I-E-I-O,
And on that 5 he769, E-I-E-I-O,
With3 2 and3 t2,
Here4t24everyw23,
1, E-I-E-I-O!
ersetzen "1"
durch "Old MacDonald765"
:
Old MacDonald765, E-I-E-I-O,
And on that 5 he769, E-I-E-I-O,
With3 2 and3 t2,
Here4t24everyw23,
Old MacDonald765, E-I-E-I-O!
ersetzen "2"
mit "here"
, dann "3"
mit "68 8"
etc.
8 entspricht dem Ton und 9 dem Tier.