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;
Uso: "cow""moo"F
para GolfScript reemplazar '|con "|"y Acon10
Explicación:
La parte clave es A,{`/\*}/:
A,{...}/ejecuta el bloque para cada número de 0 a 9 (A = 10)
`convierte el número en cadena
/\*, reemplaza una cadena: si tenemos en la pila, "bar" "foo 1 baz" "1"luego /divide la cadena resultante ["foo " " baz"], \intercambia esta matriz con el elemento anterior ("bar") y se *une a la matriz que resulta en"foo bar baz"
Entonces, el código reemplaza cada número en la cadena principal con una cadena que estaba previamente en la pila. Tenemos el animal y el sonido, luego "had", "a", etc. y finalmente ", EIEIO" y la cadena principal, "10, ...!". Para evitar el uso de demasiadas comillas, puse todas las cadenas (excepto los parámetros) en una cadena, luego la dividí y volqué la matriz resultante ( '|/~)
La cadena principal pasa por las siguientes transformaciones:
10,
And on that 5 he7690,
With3 2 and3 t2,
Here4t24everyw23,
10!
reemplazar "0"con ", 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!
reemplazar "1"con "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!
reemplazar "2"con "here", luego "3"con "68 8"etc.
8 corresponde al sonido y 9 al animal.