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;
Використання: "cow""moo"F
Для GolfScript замініть '|на "|"і Aна10
Пояснення:
Ключова частина A,{`/\*}/:
A,{...}/виконує блок для кожного числа від 0 до 9 (A = 10)
`перетворює число
/\*в рядок замінює рядок: якщо у нас є стек, "bar" "foo 1 baz" "1"то /розбиває рядок, що призводить до цього ["foo " " baz"], \міняє цей масив попереднім елементом ("bar") і *приєднується до масиву, що призводить до"foo bar baz"
Отже код замінює кожне число в головному рядку рядком, який раніше був у стеку. У нас є тварина і звук, потім "мав", "а" і т. Д. І нарешті ", EIEIO" і головну струну "10, ...!". Щоб уникнути використання занадто багато лапок, я поклав усі рядки (крім параметрів) в один рядок, потім розділив його і скинув отриманий масив ( '|/~)
Основний рядок проходить через такі перетворення:
10,
And on that 5 he7690,
With3 2 and3 t2,
Here4t24everyw23,
10!
замінити "0"на ", 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!
замінити "1"на "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!
замінити "2"на "here", потім "3"на "68 8"і т.д.
8 відповідає звуку, а 9 - тварині.