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;
Sposób użycia: "cow""moo"F
Dla GolfScript zastąpić '|
z "|"
oraz A
z10
Wyjaśnienie:
Kluczową częścią jest A,{`/\*}/
:
A,{...}/
wykonuje blok dla każdej liczby od 0 do 9 (A = 10)
`
konwertuje liczbę na ciąg
/\*
znaków zastępuje ciąg znaków: jeśli mamy na stosie, "bar" "foo 1 baz" "1"
to /
dzieli wynik w wyniku ["foo " " baz"]
, \
zamienia tę tablicę na poprzedni element („bar”) i *
dołącza do tablicy, co powoduje"foo bar baz"
Zatem kod zastępuje każdą liczbę w ciągu głównym ciągiem, który wcześniej znajdował się na stosie. Mamy zwierzę i dźwięk, potem „miał”, „a” itd., Wreszcie „EIEIO” i główny ciąg „10, ...!”. Aby uniknąć używania zbyt wielu cudzysłowów, umieściłem wszystkie ciągi (oprócz parametrów) w jednym ciągu, a następnie podzieliłem go i zrzuciłem wynikową tablicę ( '|/~
)
Główny ciąg przechodzi następujące transformacje:
10,
And on that 5 he7690,
With3 2 and3 t2,
Here4t24everyw23,
10!
wymienić "0"
z ", 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!
wymienić "1"
z "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!
wymienić "2"
z "here"
, a następnie "3"
z "68 8"
etc.
8 odpowiada dźwiękowi, a 9 zwierzęciu.