Gerçekten bu soruyu sevdim ve orada olarak bazı ilgi bir Shakespeare dil yanıtında, burada bir tanesidir.
A Tale of Two Cites (sic).
Julius Caesar, the first citizen of the Roman Republic.
Brutus, a traitor -- member of the Fifth Column.
Cicero, the greatest Roman orator.
Cleopatra, a proud queen, whom the Romans want to make one of their own.
Romeo, a man who's sometimes there.
Juliet, a maiden who can follow Romeo or stand on her own.
Act I: Imperium Romanum.
Scene I: Cleopatra puts men in their place.
[Enter Cleopatra and Julius Caesar]
Julius Caesar:
Thou art as lovely as the sum of an amazing delicious gentle blossoming warm angel and a charming noble reddest rose.
Speak your mind. Open your mind. Open your mind. Open your mind! Open your mind!
Cleopatra:
You are as stuffed as the sum of a hard old green horse and the sum of a grandmother and
a normal tiny bottomless furry small purple roman.
[Exit Julius Caesar]
[Enter Brutus]
Cleopatra:
You are as sorry as the difference between a rich morning and a leech.
You are as smelly as the difference between yourself and a sunny rural blue bold uncle.
You are as vile as the difference between Julius Caesar and yourself.
[Exit Brutus]
[Enter Cicero]
Cleopatra:
You are as half-witted as the difference between Brutus and the bluest death.
Scene II: How do you solve a problem like Cleopatra?
[Exeunt]
[Enter Cleopatra and Julius Caesar]
Julius Caesar:
Listen to your heart!
[Exit Cleopatra]
[Enter Brutus]
Julius Caesar:
Is Cleopatra more pretty than a fair charming noble angel?
Brutus:
If so, we must proceed to Scene IV. Is Cleopatra not worse than the sweetest small aunt?
Julius Caesar:
If so, let us proceed to Scene III.
Brutus:
Speak your mind.
Julius Caesar:
Is Cleopatra nicer than the moon?
Brutus:
If so, speak your mind.
Julius Caesar:
Is Cleopatra better than a golden King?
Brutus:
If so, speak your mind.
Julius Caesar:
We shall proceed to Scene V.
Scene III: Brutus and his friends.
Julius Caesar:
Is Cleopatra as fair as the blossoming smooth sky?
Brutus:
If so, speak your mind!
Julius Caesar:
Speak your mind!
Julius Caesar:
Is Cleopatra jollier than the sum of a yellow sweet road and a summer's day?
Brutus:
If so, speak your mind!
Julius Caesar:
Is Cleopatra friendlier than the sum of a sweet large angel and a white cow?
Brutus:
If so, speak your mind!
Julius Caesar:
Is Cleopatra as furry as a rich handsome huge mistletoe?
Brutus:
If so, speak your mind!
Julius Caesar:
We shall proceed to Scene V.
Scene IV: Cicero is asked to speak.
[Exit Brutus]
[Enter Cicero]
Julius Caesar:
Is Cleopatra as beautiful as the sum of a small furry white angel and a summer's day?
Cicero:
If so, speak your mind!
Julius Caesar:
Speak YOUR mind!
Scene V: A period piece -- Cleopatra's reprisal.
[Exeunt]
[Enter Cleopatra and Julius Caesar]
Julius Caesar:
You are as beautiful as the sum of a embroidered sweetest sunny delicious trustworthy Lord
and a reddest charming mighty honest King.
You are as healthy as the difference between yourself and a embroidered Lord. Speak your mind!
Open your mind! Open your mind! Open your mind! Open your mind! Open your mind! Open your mind!
Cleopatra:
Are you jollier than the sum of a little rural white bottomless blue blue sky and a rural furry white green old morning?
Julius Caesar:
If so, we must proceed to Act II. Open your mind! Open your mind!
Cleopatra:
You are as damned as the difference between yourself and a half-witted dusty snotty rotten oozing death.
[Exit Julius Caesar]
[Enter Brutus]
Cleopatra:
You are as rotten as the difference between yourself and a rural rotten bottomless evil miserable famine.
[Exit Brutus]
[Enter Cicero]
Cleopatra:
You are as fatherless as the difference between Brutus and a normal pig. Let us return to Scene II.
Act II: Lovers' arithmetick.
Scene I: Our lovers discuss what they have in common.
[Exeunt]
[Enter Romeo and Juliet]
Romeo:
Thou art as bold as a curse. Listen to your heart!
Juliet:
Am I better than nothing? If so, let us proceed to Scene III.
Romeo:
Open your mind. Open your mind.
Juliet:
Listen to your heart! Open your heart!
Romeo:
Thou art as amazing as the product of the difference between a handsome white proud white grandfather and an aunt
and the sum of a loving niece and the Heaven. Speak your mind! Open your mind.
Listen to your heart. Is the quotient between yourself and the sum of the sum of
a noble noble mighty blossoming embroidered good father
and a gentle large large normal old joy and an old happy squirrel as yellow as the quotient between
myself and the sum of the sum of a pretty beautiful yellow green bold charming kingdom and
a beautiful blue normal cute large nephew and a pretty big cousin?
Juliet:
If not, we shall proceed to Scene II.
Romeo:
You are as sweet as the remainder of the quotient between yourself and the sum of the sum of
a blossoming bottomless golden peaceful noble healthy nose and
a happy honest sunny green healthy hero and a hard blue fellow.
Juliet:
YOU are as sweet as the remainder of the quotient between yourself and the sum of the sum of
a blossoming bottomless golden peaceful noble healthy nose and
a happy honest sunny green healthy hero and a hard blue fellow.
Scene II: Tense times.
Juliet:
Is the quotient between yourself and the sum of a good beautiful delicious grandmother
and a noble wind as amazing as the quotient between myself and the sum of
a smooth furry embroidered roman and a honest sister?
Romeo:
If so, you are as amazing as the remainder of the quotient between
yourself and the sum of a cute healthy smooth kingdom and a normal mother.
Scene III: Parting is such sweet sorrow.
Romeo:
Open your heart! You are as noble as the sum of a honest charming smooth peaceful fine rose and the sum of
a cute amazing trustworthy summer's day and an angel. Speak your mind!
(Bu 6000'in üzerinde bayt uzunluğunda.) Orada bazı hileler vardır ama ben çünkü çok, golf denemedim: Zaten (1) katkıda başka Yanıta golf payımız, ve (2) Sayfa" ile tüm karakterleri değişiyor "ve" Puck "ya da" büyük büyük büyük büyük büyük kedinin "tüm ifadeleri, eğlenceyi mahvedebilir. Romen rakamlarıyla ilgilenen kısım yerine, Romalılar vb. Karakterleri kullandım. Bazı yazımları kaydetmek için karakterleri ve talimatları yeniden kullandım. :-)
Program çoğunlukla basit olmalı, ama bahsetmeye değer bir kırışıklık, bunu yazdığımda bir tamsayı okurken şöyle çalışacağını varsaydım scanf
: (1) sadece girdiden bir tamsayıya karşılık gelen kadar karakter tüketir ve (2) bu durumda kullanılır. başarısızlık durumunda değişkeni değişmeden bırakın. (Bu ikinci özelliği, II. Yasada 1. ve 2. Şablonlar arasında, "Çizgi" ye kadar okuyarak ve bir tamsayı okumaya çalışarak ayırt etmek için kullandım.) Ne yazık ki, ilk uygulamasında bir hata olduğunu (ne düşündüğüm) ortaya çıktı Bir tamsayı okumanın satırın sonuna kadar her şeyi tükettiği ve başarısız olması durumunda hata attığı dil, bu yüzden daha fazla davranması için bir yamayalibspl.c
ihtiyaç duyar .int_input
scanf
Ve bununla, işe yarıyor:
% spl2c < good.spl > good.c
% gcc -lspl -o good good.c
% for f in in-*; do cat $f; echo "->"; ./good < $f; echo "\n"; done
(Act 1, Scene 2, Lines 345-346)
->
(I.ii.345-6)
(Act 3, Scene 4, Lines 34-349)
->
(III.iv.34-349)
(Act 5, Scene 9, Lines 123-234)
->
(V.ix.123-234)
(Act 3, Scene 4, Line 72)
->
(III.iv.72)
(Act 2, Scene 3, Lines 123-133)
->
(II.iii.123-33)
(Act 4, Scene 8, Lines 124-133)
->
(IV.viii.124-33)
Kimsenin anlamaya çalışmasına yardım etmek için üzerinde çalıştığım, biraz daha üst düzey sahte kod:
Print `(`=40
Read 5 chars
Read Int A
Output A in Roman
Output `.`=46
Read 8 chars
Read Int S
Output S in roman
Output `.`=46
Read 6 chars
Set N to -1
Read Int N
If N ≠ -1 goto finish
Read 2 chars
Read Int M
Output Int M
Output `-`=45
Read 1 char
Read Int N
Reduce N wrt M
finish:
Output N
Print `)`=41
Yukarıdakilerin final koduyla ilişkilendirilmesi bir egzersiz olarak bırakılmıştır. :-) ShakespearePL'in aritmetik ve yığma ve gotos olduğunu, ancak işaretçilerin olmadığını (yalnızca etiketler) olduğunu unutmayın; bu nedenle, Roma'ya dönüştürme gibi "alt yordamları" uygulamak biraz ilginçtir.