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 A
con10
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.