Olarak Shakespeare Programlama Dili, iki İsveçli öğrenciler Karl Hasselström ve Jon Åslund tarafından 2001 yılında oluşturulan ve birleştirir edildi yazarlar ilan ,
BASIC'in assembly diline ait kullanıcı dostu olması ile ifade edilmesi.
Cevaplar yukarıdan aşağıya doğru gider. Ayrıca, daha eski veya önceki snippet'lere başvurduğumu görmek de yaygındır.
( kendim için link: edit )
Uydurma:
Shakespeare'in kodu, beklendiği gibi, değişkenlerin oyundaki karakterleri olduğu ve değerlerinin "hakaret" veya övgüyle "değiştirildiği bir Shakespeare oyununa benzer.
Uzunluk 1 pasajı:
I
Shakespeare'in kodu Yasalara bölünmüştür ve hareketler "atlamaya geçme" nedenleri için Sahnelere bölünmüştür. Bir Yasa olarak tanımlanması Act I
, örneğin çalıştırılacak kodun ilk parçası olacağı anlamına gelir - yalnızca değil.
Uzunluk 2 pasajı:
as
İki "karakter" arasında karşılaştırmalı kullanılır.
Uzunluk 3 pasajı:
day
Şimdilik, SPL'nin çok ayrıntılı olduğu hissine kapılıyor olabilirsiniz. Ve garip. Ve daha hiçbir şey görmedin. day
, SPL'de 1'dir. Tüm "pozitif" ve "nötr" isimler 1
olduğu gibi tüm "negatif" isimler olarak kabul edilir -1
.
Uzunluk 4 pasajı:
rich
Nedir rich
? Bir sıfat. SPL'de sıfatlar, eklendikleri ismin değerini iki ile çarpmaktadır. Snippet 14'deki uygulamaya bakın.
Uzunluk 5 pasajı:
Act I
İlk pasajın uygulanması. Act I: Hamlet must die!
Romen rakamından sonra gelen her şey çözümleyici tarafından göz ardı edildiğinden tüm eylemlere bir başlık verilebilir .
Uzunluk 6 pasajı:
better
Her dilin bir şartı vardır ve SPL istisna değildir. Bunun dışında, uzun bir sözdizimine sahip bir dil olduğu için (ve tuhaf olduğunu söylemiş miydim?), Koşullu ifadeleri uzun olacaktır. Ophelia Juliet sormak Having Am I better than you?
olması gibi if (Ophelia > Juliet)
pek çok "normal" dillerde. Ve elbette, bunun tersini sorabilirsiniz: Am I not better than you?
eşdeğerdir if (Ophelia < Juliet)
. Ve zaten SPL'ye nasıl =
çevrildiğini tahmin edebilirsiniz : as good as
- Kod pasajı 2 kullanımı.
Ancak, good/better
bu shakesperian dilde karşılaştırma yapmanın tek yolu değil, herhangi bir sıfat kullanabilirsiniz. Aynı snippet 3 ilkesi, burada >
"negatif" olanların değerine sahip olan "pozitif" sıfatlarla da geçerlidir <
.
Uzunluk 7 pasajı:
Juliet:
Bu bir değişkenin çağrılmasıdır; Bundan sonra, onun talimatları / beyanları / ne olursa olsun takip edecek.
SPL'nin bir sınırlılığı, sınırlı sayıda değişkene sahip olmasıdır: Romeo, Juliet, Hamlet, Ophelia, MacBeth ve diğerleri, Shakesperian programında görünecek birkaç "karakter" örneğidir.
Uzunluk 8 pasajı:
[Exeunt]
[Exeunt]
Tüm "karakterler" "aşama" dan ayrıldığında yerleştirilir. Umarım, karakterler arasındaki etkileşimle ilgili biraz daha ayrıntılı çalışabilirim. Genel olarak, herhangi bir SPL programının son talimatı olmasına rağmen [Exeunt]
, özellikle dilin terminal karakteri olmamasına rağmen . Başka bir örnek için, snippet 27'ye bakın.
Uzunluk 9 pasajı:
as bad as
Yalnızca bir =
parçacığını kullanan dokuz karakteri temsil etmek için 2. SPL'nin tuhaf olduğunu söylemiş miydim? Örnekler için pasaja 30 bakın. (ve evet, çıktı almanın birden fazla yolu var)
Uzunluk 10 pasajı:
difference
Göstermenin süslü bir yolu -
, bir çıkarma. SPL'de matematiksel işlemler yapabilirsiniz, muhtemelen doğru bir şekilde yapmak için tam bir güne ihtiyacınız olsa bile.
Factoid
(bir şekilde on kod parçacığına ulaşmayı başardığımdan, biraz ara verelim ve SPL hakkında başka bir factoid yapalım)
Shakesperian kodunuzu tüm ihtişamıyla çalıştırmak istiyorsanız, bu site var - hala test ediyorum, çünkü 5 dakika önce bile bulamadım. Bir tercüman kullanarak onu C'ye çevirmenin bir yolu var .
SPL kodunu çalıştırmak için başka bir site, SPL kodunu dahili olarak başka bir ezoterik dile çevirerek çalışan bu sitedir : Oracle PL / SQL.
Uzunluk 11 pasajı:
[Exit Romeo]
Evet! Sonunda karakterler arasındaki etkileşimi konuşabilirim! Değerinin değişmesi veya başkaları ile etkileşime geçmesi için sahneye girerken bir "karakter" bulunmalıdır [Enter Romeo]
. Bir karakter adreslenmiş ancak bulunmuyorsa, çalışma zamanı hatası vardır ve program durur. Çünkü, SPL'de değişkenlerin değeri, övgüde bulundukları adların sayısına göre - veya sahnede diğer karakterlerle hakaret - olarak belirlenmiştir. Topal açıklamamın yaratabileceği karışıklığı gidermek için bir örnek vermem gerektiğini düşünüyorum, ancak birkaç parçacığı geciktirmek belki de en iyisidir.
Uzunluk 12 pasajı:
Remember me.
SPL oldukça "basit", tamam - ama yığınları var! Örneğin, Romeo, Juliet'e "onu hatırlamasını" söylediğinde, aslında Romeo'ya değerini yığına sokması için sevilenine söyler. Değerini haşhaş ile yapılır Recall your happy childhood!
, ya da Recall your love for me
, ya da temelde başlayan tüm cümle Recall
- kalanı pasajı 22 gibi sadece sanatsal bir saçmalık.
Uzunluk 13 pasajı
Let us return
Shakesperian tarzı bir goto
. Ve burası, Elçilerin ve Sahnelerin kullanışlı olduğu yerdir. Romeo, Juliet'e söylerse we shall return to Act II
(evet, yine, yazmanın birden fazla yolu vardır), program kodun o belirli bölümüne atlayacaktır. Ayrıca şartlı ifadelerin yanında da görülür.
Uzunluk 14 pasajı
my little pony
Evet, 80'lerde bir dizi oldu. İşte bu 2*1
. Neden? Çünkü a pony
(biraz) olumlu bir isim ve little
bir sıfattır. Yani, 3 ve 4 snippet'lerini hatırlayarak, biz little = "2 *"
ve pony = "1"
.
Uzunluk 15 pasajı
Speak thy mind!
Bir SPL programında, bunu (veya Speak your mind!
aynı olanı) çok göreceksiniz . Bu, temel olarak, bilgisayarınızın kullandığı karakter setine bağlı olarak, her bir "karakter" in değerini rakam, harf veya herhangi bir şekilde verir. Orada da var Open your mind.
o yalnızca sayısal formda çıkışı olsa hemen hemen aynı şeyi yapar.
Uzunluk 16 pasajı
You are nothing!
Biri size bunu gerçek hayatta anlattığında, kendinizi depresyonda hissedeceksiniz. Ophelia, Shakespearian'ın programlamasında Hamlet'e bunu söylediğinde, Hamlet kendini değersiz hisseder. Ne anlama geliyor? Yani Hamlet = 0
.
Uzunluk 17 snippet
Ophelia, a wench.
Bir senaryoda, gerçek oyun başlamadan önce karakterlerin sunulması gerekir. Çoğu programlama dilinde, değişkenlerin kullanımdan önce de bildirilmesi gerekir. SPL'nin senaryoya benzeyen bir programlama dili olduğunu görünce, programda görünenlerin hangileri olduğunu belirterek değişkenlerini nasıl açıkladığınızı görebilirsiniz.
Peki "wench" ne anlama geliyor? Özel bir (ve harika) veri türü adı olduğu anlamına mı geliyor? Şey ... Seni hayal kırıklığına uğratmaktan nefret ediyorum ama bu hiçbir şey ifade etmiyor: virgülten sonraki her şey ayrıştırıcı tarafından göz ardı ediliyor, yani oraya aklınıza gelebilecek en çirkin saçmalık koyabileceğiniz anlamına geliyor.
Uzunluk 18 snippet
lying sorry coward
-4
tüm dünyasal yaratıklar için. Neden? Çünkü 2*2*(-1) = -4
.
Uzunluk 19 pasajı
Romeo:
Remember me.
Sonunda!!! Sonunda tam bir doğru sözdizimi talimatı verebilirim (kısa da olsa)! Parçacık 12'yi bu şekilde kullanırsınız: ilk önce kimin konuştuğunu bildirirsiniz, sonra bir sonraki satıra "diyalog" yazarsınız. Normalde, ayrıştırıcının üzülüp kafasını karıştırmamak için yalnızca iki "karakter" sahnededir. Başka bir "karaktere" ihtiyacınız olduğunda, sahneden birini alın ve onu yenisiyle değiştirin.
Uzunluk 20 pasajı
cube of thy codpiece
Bunun için biraz daha detaylandırmak istedim, ama gerçeği söylemek gerekirse, ortaya çıktıklarım hala bu snippet uzunluğu için çok kısa. Ve böylece, size bunu getiriyorum, ki sonuç şu ki -1
- çünkü (-1) 3 = -1 (ve codpiece
rahatsız olduklarından ve hepsinden ötürü "negatif" bir isimdir). SPL, bazı üstel ve karekökler olarak birkaç daha ayrıntılı aritmetik işlemi anlar .
Factoid (bir tane daha, bir başka dönüm noktasına ulaştığımızdan beri)
Shakesperian'daki "Merhaba Dünya Programı", burada görüldüğü gibi , 89 satır ve 2400 karakterden daha uzun bir süreye sahip .
Uzunluk 21 pasajı
Listen to your heart.
Snippet 15'te bir şey çıktı; burada programa bir sayı girersiniz. Bir karakter girmek istiyorsanız, Open your mind.
onun yerine kullanacaksınız . Söylemeye gerek yok, bu değer konuşulan "karakter" de saklanacaktır.
Uzunluk 22 pasajı
Recall your childhood!
Bir yığından bir tamsayı fırlatmak, bununla birlikte, snippet 12'de açıklandığı gibi yapılır. Örneğin, Ophelia Hamlet'e yukarıda belirtilen cümleyi söylerse, Hamlet'in yığından bir tamsayı almasına ve bu değeri almasına neden olur.
Elbette, kelime recall
cümleyi başlattığı sürece , gerisini yaratıcı Shakesperian zihninizin istediği hemen hemen her şeyle doldurabilirsiniz.
Uzunluk 23 snippet'i
Are you better than me?
Snippet'in Uygulanması 6. Bir "karakter" başka bir soruya böyle bir soru yaptığında, yaptığı şey if (x > y)
daha yaygın programlama dillerinde eşdeğerdir . Daha fazla karakter olana kadar bu talimatın izlenmesi gecikmeli olmalı.
Uzunluk 24 snippet'i
[Enter Romeo and Juliet]
Evet, "karakterler" çiftler halinde girebilir. Bir diğer karakter tarafından takip edilen sahneye giren bir "karakter" olması gerekmez.
Uzunluk 25 pasajı
remainder of the quotient
Sadece yazmak için 25 karakter %
. Bir bölümün kalanına sahip olmak için 25 karakter. Ve kullanmak için? Eh, bu daha da büyük - pasajı 75 bakın.
Uzunluk 26 pasajı
Let us return to scene II.
İşte goto
bir programlama dilinde beklediğiniz gibi çalışan bir SPL'dir. Bir şey: aynı eylemdeki sahneler arasında ve eylemler arasında atlayabilirsiniz; ancak farklı davranışlardaki sahneler arasında geçiş yapamazsınız.
Uzunluk 27 pasajı
[Exeunt Ophelia and Hamlet]
Birden fazla "karakter" sahneden ayrıldığında, Exit
SPL'nin teatral doğası ile geleneği sürdürmek yerine , Latince "Exeunt" kelimesi kullanılır. Bazen sadece pasaj 8 ile değiştirilebilir.
Uzunluk 28 pasajı
Scene I: Ophelia's flattery.
Bir Sahne Bildirmek. Zaten benimle başa çıkıp yaşamayacağınızı bekleyebileceğiniz gibi, asıl önemli Scene I
olan gerisi sanatsal kabartmak.
Yasa / Sahnenin numaralandırılmasından sonra metne atıf yapan bazı derleyiciler ( SPL'den C'ye, Python'da yazılmış olan gibi ) yapılmıştır. Daha mantıklı olmakla birlikte (her şeyden önce, bir oyun sırasında, "Harekete Geri Dönelim" gibi satırların söylenmesi saçma görünebilir), orijinal yola yapıyorum.
Uzunluk 29 snippet
You pretty little warm thing!
Evet, yine başka bir sabit ( aritmetik işlem yapmak için daha fazla karaktere ihtiyacımız olduğu için). Bu 8
, çünkü eşittir 2*2*2*1 = 8
.
Uzunluk 30 pasajı
You are as cowardly as Hamlet!
Bunu söylemek, mesela Romeo demek ki Romeo = Hamlet
. 9 parçacığı gibi.
Factoid (evet, başka bir dönüm noktası oldu!)
Bu dil bir Sözdizimi Analizi kursunda bir ödev için yaratılmıştır - bu nedenle yazarlar tarafından SPL derleyicisi oluşturulmamıştır. Devamı: Görünüşe göre SPL'nin yazarları yarattıkları ile bağlarını kopardılar, çünkü dilde 2001'den bu yana hiçbir şey değişmedi ...
Uzunluk 31 pasajı
Am I as horrid as a flirt-gill?
Evet, biliyorum, bu biraz yinelenen pasajı 23, ancak burada, "flört-solunguğu" ile konuşan "karakteri" karşılaştırıyoruz (eğer istersen if (Ophelia == -1)
). Şey ...
Uzunluk 32 pasajı
If so, let us return to scene I.
... şimdi then
SPL'yi ve koşullu atlayışı ve Shakesperian'lerin döngüleri uygulama şeklini tanıtabilirim . Mesela, Romeo'nun değeri üstlenmesini sağlayabilir, 0
başka bir görev yaparken değerini artırabilir ve daha sonra programa devam ederek 10'a ulaştığında durabilirsiniz.
Uzunluk 33 pasajı
If not, let us return to scene I.
Sadece bir hatırlatma, bunun yerine, test ettiğimiz koşul yanlışsa başka bir sahneye geçebileceğimizi söyleyebiliriz .
Uzunluk 34 pasajı
Open your mind! Remember yourself.
Üst üste iki talimat, yippie! Birincisi bir karakter okur, ikincisi onu diğer karakterin hafıza yığınına iter.
Uzunluk 35 snippet
Act I: Death!
Scene I: Oh, shit.
Kanun ve Sahnenin ilan edilmesinin uygun yolu. Zevkle sanatsal mantar ekleyin.
Uzunluk 36 pasajı
Thou art as sweet as a summer's day!
Konuşulması gereken "karakter" in değerini almanın bir başka yolu 1
- çünkü yaz günleri güzel ve hoş.
Uzunluk 37 snippet
Art thou more cunning than the Ghost?
Bu soruyu Hamlet'e sormak, bunu daha az okunabilir bir programlama diline çevirmek anlamına geliyor if (Hamlet > the Ghost)
. Tekrar tekrar 23 parçacığı var, evet - ama "karakterlere" birbirlerinden daha iyi olup olmadıklarını sormanın gerekmediğini göstermeye devam ediyor: başka bir soru da işe yarayacak.
Uzunluk 38 pasajı
[Enter the Ghost, Romeo and the Ghost]
Evet, iki kez "karakter" olarak adlandırıyorum - çünkü programın bana bir hata yapmasını istedim. Halihazırda sahnede olan bir "karakter" olarak adlandırılması veya çıkamayan birisinin söylenmesi ayrıştırıcı / derleyiciye büyük bir üzüntü verecektir.
Uzunluk 39 snippet
the sum of a fat lazy pig and yourself!
Tüm talimatlar buna bakmakla daha iyidir, size bunu vereceğim, ama ... işte ilk aritmetik işlemimiz! Aslında bunların anlamı ne? Şey, pig
kirli bir hayvan (lezzetli olsa da), yani eşdeğer -1
, iki sıfat var, yani fat lazy pig
eşit 2*2*(-1) = -4
. Peki ya yourself
? Yansımalı bir zamir, isim ya da sıfat değil. Öyleyse, SPL'nin "karakterler" arasındaki diyaloglara dayandığını unutmayın; Bu nedenle, yourself
sahnede diğer "karakter" anlamına gelir. Böylece, sonuna varıyoruz ve “şişman tembel bir domuzun ve kendinin toplamının” aslında olduğunu keşfediyoruz -4 + x
.
Uzunluk 40 pasajı
the sum of a squirrel and a white horse.
Evet, başka bir toplam, ama bu paragraf 39'dan daha basittir. Bu sadece 1 + 2
- 3
eğer matematiğim doğru ise.
Factoid (Hala kırk sanatsal kabartmadan sonra benimle birlikte misiniz? Bir ödülü hakediyorsunuz.)
SPL, 1.2.1 sürümünde buradan indirilebilir .
Uzunluk 41 snippet
Juliet:
Speak thy mind!
[Exit Romeo]
Bazen "karakterler" yalnızca sahnede değerlerinin değişmesi için denir - bu da gerçek bir oyunda oldukça tuhaf bir şey olurdu. Her neyse, burada, Juliet, sevgili Romeo'yu depolanan değerini yazdırarak sahneden çıkar.
Uzunluk 42 snippet
Speak YOUR mind! You are as bad as Hamlet!
Yine bir satırdaki iki komut (birden fazla olabilir, ancak pasaj uzunluğu henüz buna izin vermiyor); Burada, bir başkasına değerini çıkarmasını ve Hamlet'in sahip olduğu değeri varsaymasını söyleyen bir "karakterimiz" var. Kafa karıştırıcı? Mayhap.
Uzunluk 43 snippet
Am I as horrid as a half-witted flirt-gill?
Juliet bunu sormak, onun saygınlığının düşük olduğu anlamına gelmez (gerçek hayatta da olsa); if
23 ve 37 numaralı snippet'ler gibi başka bir şey. Ah, neredeyse unutuyordum: bu çevirir if (Juliet == -2)
.
Uzunluk 44 snippet
You are as evil as the square root of Romeo!
Evet, kare kökler kötüdür, bilmiyor muydunuz? Her neyse, bu talimat ne yaptığını anlayacak kadar basittir: Konuşulan "karakter" i Romeo'da depolanan değerin karekökünün değerine bağlar.
Uzunluk 45 snippet'i
Hamlet:
Art thou more cunning than the Ghost?
Snippet 37, hattı konuşan karakter ile doğru bir şekilde yazılmıştır.
Uzunluk 46 snippet
the product of a rural town and my rich purse.
Tamam ... neyse, SPL, şehirleri cüzdanlarla çarpmana izin veren dünyadaki tek dil olabilir. Bu (2*1)*(2*1)
, eğer çok yanılmıyorsam, eşittir anlamına gelir 4
.
Uzunluk 47 pasajı
Romeo:
Speak your mind.
Juliet:
Speak YOUR mind!
Size şunu vereceğim: tarihin en tuhaf diyaloglarından biri olabilir. Ancak, sergilemek için tuhaf bir dil seçtiğinizde elde ettiğiniz şey budur. Romeo ve Juliet birbirlerine kısaca değerlerini vermelerini söylüyor.
Uzunluk 48 pasajı
You lying fatherless useless half-witted coward!
Doğrudan çevirmek 2*2*2*2*(-1)
,. -16
, sağ?
Uzunluk 49 snippet'i
Scene V: Closure.
Hamlet:
Speak your mind!
[Exeunt]
SPL'de bir programın nasıl sonlandırılacağına bir örnek. Özel olarak bir sahne açıklayabilirsin (zorunlu olmasa da), daha sonra Hamlet değerlerini çıkarmaları için başka bir "karakter" sorar, sonra hepsi sahneden çıkar. Ve evet, hepsinin sahneden çıkması gerekiyor.
Uzunluk 50 pasajı
Othello, a young squire.
Lady Macbeth, an old fart.
Uygun talimatlardan önce "karakter" sunumu. Her zaman olduğu gibi, derleyici için önemli olan tek şey Othello
ve Lady Macbeth
bu yüzden çizginin geri kalanı kapmak için ...
Bir şey daha: "karakterler" bir SPL programında görünmek için birbirleriyle ilişkili olmak zorunda değil - böylece aynı oyunda Romeo, Othello ve Hamlet olabilir.
Factoid (bu şeylerin yarım yüzyıllık? Phew! Bundan sonra William Shakespeare'den nefret edeceğim sanırım ...)
SPL'den C'ye tercüman, bir süre önce bahsetti ve SPL yaratıcıları tarafından geliştirildi, Flex ve Bison'a dayanıyordu .
Uzunluk 51 pasajı
Othello:
Recall your great dreams. Speak your mind!
(Romeo, Juliet ve Hamlet'ten bıktıktan sonra ... değişiklik yapmak için Othello'yu getirelim!)
Recall
Tahmin edebileceğiniz gibi, burada anahtar. Othello, "karakter" ibaresinden istifinden bir değer alacak, bu değerin üstesinden gelecek ve daha sonra, bunun çıktısını alacaktır.
Uzunluk 52 pasajı
Thou art as pretty as the sum of thyself and my dog!
Başka bir miktar. Esneyin. Bunun Hamlet'e yönelik olduğunu varsayarsak, bunun anlamı Hamlet = Hamlet + 1
. Veya Hamlet += 1
. Veya Hamlet++
.
Uzunluk 53 pasajı
Romeo:
You are as vile as the sum of me and yourself!
Ah, evet, daha önce bahsetmeyi unuttuğum bir şey: konuşan "karakterler" kendi satırlarında kendilerinden bahsedebilir.
Uzunluk 54 snippet'i
Juliet:
Is the sum of Romeo and me as good as nothing?
Bir koşulda yer alan önceki snippet'in başka bir örneği. Yani burada sahip olduğumuz şey if (Romeo + Juliet == 0)
.
Uzunluk 55 pasajı
Juliet:
You are as lovely as the sweetest reddest rose.
Böylece, burada, Juliet, konuştuğu "karakteri" övüyor (Shakespeare'in hatırı için Romeo olduğunu varsayalım), 4 olduğunu ilan etti. Evet, başka bir değer ataması.
Uzunluk 56 snippet'i
Othello:
You lying fatherless useless half-witted coward!
Snippet 48 düzgün bir şekilde "karakter" ile yapıldı. Yukarı kaydırmayacak kadar tembelseniz (benim gibi), bu, hakaret edilenin -16 değerini aldığı anlamına gelir.
Uzunluk 57 pasajı
Romeo:
If not, let us return to Act I. Recall thy riches!
SPL'de koşulların genel olarak nasıl çalıştığını zaten açıkladım; ancak, daha fazla satır içi analiz gereklidir. Burada biz yokuz else
: örneğin, bu örnekte, koşul başarısız olursa, program Yasası I'e dönecekti; ama eğer doğru olsaydı, bir sonraki komutuna devam ederdi, ki bu Recall
- yığıntan bir pop, yani.
Uzunluk 58 pasajı
Romeo:
You are as disgusting as the square root of Juliet!
Pasaj parçasını 44 kapmak ve talimatın nasıl sunulması gerektiğini göstermek. Bu Romeo ve Othello arasında bir diyalog olsaydı, o zaman bunu Java'ya çevirebilirdik Othello = Math.sqrt(Juliet)
.
Uzunluk 59 snippet
Othello:
You are as vile as the sum of yourself and a toad!
Tamam, eğer Othello Romeo'yla konuşuyorsa, buna eşdeğer olur Romeo+(-1)
; Romeo--
, kısaca. Oldukça basit değil mi? Bu senin için SPL.
Uzunluk 60 pasajı
Is the quotient between the Ghost and me as good as nothing?
Kısacası, if (The Ghost/Hamlet == 0)
"ben" varsayımı Hamlet'e ait.
Uzunluk 61 snippet
Thou art as handsome as the sum of yourself and my chihuahua!
Kelime ve hakaretlerin katmanlarını ve katmanlarını soyduktan sonra, SPL'nin harika işlevler ve şeyler olmadan temel bir şey olduğunu fark edersiniz. Böylece programın gövdesinde çok fazla aritmetik fonksiyon yükümüz var. Öyleyse, eğer bu Juliet'e hitap edilmişse, buna eşdeğer olur Juliet++
.
Uzunluk 62 snippet
twice the difference between a mistletoe and a oozing blister!
Evet, evet, daha fazla aritmetik işlem. Kabaca, bu 62 bayt SPL'ye çevrilebilir 2*(1-2*(-1))
. Bu harika bir golf dili olurdu, değil mi? Sağ.
Uzunluk 63 pasajı
You lying stupid fatherless rotten stinking half-witted coward!
Snippet 48, -16 ile çıktı, bu da -64: e eşit 2*2*2*2*2*2*(-1)
.
Uzunluk 64 snippet
your coward sorry little stuffed misused dusty oozing rotten sky
SPL'yi anladığım kadarıyla, bu tamamen yasal. "Olumlu" bir isim gösteren bir çok hakaret sıfatına sahipsin. Sıfatların olumsuz olup olmadıklarına dair özel bir ayrım olmadığından (tek değerleri, sağdaki sayıyı iki ile çarpmaktır), bunun gibi tamamen saçma cümleler kurabiliriz. Hangi 256'ya eşittir. Çünkü 2*2*2*2*2*2*2*2*1=256
.
Uzunluk 65 snippet
You are nothing! You are as vile as the sum of thyself and a pig.
Hmm, çok fazla nefret, değil mi? Yani, burada sahip olduğumuz eşdeğer y=0; y=y+(-1);
Muhtemelen, "golf" olabilirdi You are a pig!
ama heh.
Uzunluk 66 snippet'i
You are as beautiful as the difference between Juliet and thyself.
Demek Juliet'i kendinden çıkar. Bu çözülmesi oldukça basittir: Romeo=Juliet-Romeo;
söylenen Romeo olduğunu varsayarak.
Uzunluk 67 pasajı
Juliet:
Am I better than you?
Romeo:
If so, let us proceed to Act V.
SPL'de koşulların çoğu nasıl çalışır? İfadeyi test edersiniz ve doğruysa (ya da değil: pasajı 33'e bakın), programın başka bir bölümüne atlayın; Aksi takdirde, bir sonraki cümleyle devam edersiniz.
Uzunluk 68 pasajı
The Ghost:
You are as small as the sum of yourself and a stone wall!
Evet, evet, biraz monoton hale geliyorum. Ancak SPL böyledir. Biraz önce belirttiğim gibi, ifadeleri aritmetik işlemlerin bir karışımıdır. Böylece, bu başka bir artıştır - çünkü stone wall
nötr bir "isim".
Uzunluk 69 pasajı
Thou art as disgusting as the difference between Othello and thyself!
Bir miktar yerine, Othello ve kiminle konuşulduğu iki karakter arasındaki çıkarmaya sahibiz.
Uzunluk 70 pasajı
You are as handsome as the sum of Romeo and his black lazy squirrel!
İlavelere geri dönüyoruz, evet - beni formül olarak adlandır, he. Bunu çeviririz Romeo + 2*2*1
.
Uzunluk 71 pasajı
Scene I: Dialogues.
[Enter Juliet]
Othello:
Speak your mind!
[Exit Juliet]
Bir sahne bu kadar küçük olabilir. Juliet
sahneye girer, Othello ona depolanan değerini vermesini söyler, sonra tekrar sahneden çıkar.
Uzunluk 72 pasajı
twice the difference between a mistletoe and an oozing infected blister!
Bir aritmetik işlem daha var - çünkü SPL onlarla biliniyor. Bunu çevirebiliriz 2*(1-2*2*(-1))
.
Uzunluk 73 snippet
You are nothing! Remember me. Recall your unhappy story! Speak your mind!
Üst üste dört talimat ?! Aslında kendimle gurur duyuyorum. Her neyse, bunun Romeo ve Juliet arasındaki bir diyalog olduğunu varsayalım (ve konuşuyor): bu, Juliet'in değerinin 0'da başladığı anlamına gelir; sonra Juliet, Romeo'nun değerini hafıza yığınına sokacak, açacak ve girilen biçiminde çıkacaktır. Basit değil mi?
Uzunluk 74 snippet'i
You are as sweet as the sum of the sum of Romeo and his horse and his cat!
Evet, sıkıcı bir örnek biliyorum. Ama bu X = (Romeo + 1) + 1
.
Uzunluk 75 pasajı
Is the remainder of the quotient between Othello and me as good as nothing?
Eh, bu oldukça basit. Kod çözme becerileriniz arızalanıyorsa, buna karşılık gelir if (Othello % X == 0)
.
Uzunluk 76 snippet'i
Thou art as rich as the sum of thyself and my dog! Let us return to scene I.
Önceden bir ifadeyle pasaj 26'dan atlama. Bir goto
SPL'de her zaman bir koşulun yanında bulunmaz, bu böyle olabilir - ve elbette, bu tür bir goto
eylem her zaman bir Yasanın veya Sahnenin sonunda bulunur, çünkü talimatlar asla derlenip / yapılmayacağından. İlk talimat oldukça basittir: x=x+1
.
Uzunluk 77 pasajı
[Exit Hamlet]
[Enter Romeo]
Juliet:
Open your heart.
[Exit Juliet]
[Enter Hamlet]
Öyleyse sahnede Juliet ve Hamlet var; ama Romeo'nun değerine ihtiyacımız var. Böylece, derleyiciyi çok kötü bir baş ağrısından kurtarmak için, öncelikle Hamlet'i sahneden kaldırırız (gitmesi gereken Juliet olsa da), Romeo'ya sahneye çıkmasını söyleriz, Juliet ona çıkış yapması için bir talimat verir. sayı (bkz. snippet 21'in açıklaması), sonra Romeo sahne dışına çıkar ve Hamlet geri döner. Oldukça basit ve basit.
Uzunluk 78 pasajı
The Ghost:
Speak thy mind.
Lady Macbeth:
Listen to thy heart! Remember thyself.
Öyleyse, The Ghost (Hamlet'in vefat eden babası) Lady Macbeth'e değerinin çıkmasını söylerken, The Ghost'a bir sayı okuyup istifine itmesini emreder.
Translate[Scale[Rectangle, 80], {0, 0, 100}]
olsaydı, büyük kelimeRectangle
monitörünüzün önünde kayan belirir mi?