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 - тварині.