Görev
Göreviniz, seçtiğiniz ifadeleri kullanarak, birkaç ifadeyi analiz eden ve domuzların uçabileceği ifadelerden sonuçlanıp sonuçlanmayacağını belirleyen bir işlev veya program yazmaktır.
Giriş
Giriş, STDIN'den okunabilen, işlev bağımsız değişkeni olarak alınan veya hatta bir dosyaya kaydedilebilen bir Dizedir. Giriş, aşağıdaki EBNF kullanılarak tanımlanabilir:
input = statement , {statement};
statement = (("Pigs are ", attribute) | ("Everything that is ", attribute, "is also ", attribute)), ". ";
attribute = [not], ("able to fly" | singleAttribute);
singleAttribute = letter, {letter};
letter = "a" | "b" | "c" | "d" | "e" | "f" | "g"
| "h" | "i" | "j" | "k" | "l" | "m" | "n"
| "o" | "p" | "q" | "r" | "s" | "t" | "u"
| "v" | "w" | "x" | "y" | "z" ;
Örnek giriş (aşağıdaki daha fazla örneğe bakın):
Pigs are green. Everything that is green is also intelligent. Everything that is able to fly is also not intelligent. Pigs are sweet.
Çıktı
Çıktı, işleviniz tarafından döndürülebilir, bir dosyaya yazılabilir veya STDOUT'a yazdırılabilir. Ele alınması gereken 5 farklı durum vardır:
- Verilen açıklamalar geçerlidir, tutarlıdır ve domuzların uçabileceği gibi mantıklı bir sonuçtur. Bu durumda çıkış yapmanız gerekir
Yes
. - Verilen açıklamalar geçerlidir, tutarlı ve domuzların uçamayacağı kadar mantıklı bir sonuçtur. Bu durumda çıkış yapmanız gerekir
No
. - Domuzların uçup uçamayacağı, verilen geçerli ve tutarlı ifadelerden çıkarılamaz. Bu durumda çıkış yapmanız gerekir
Maybe
. - Verilen ifadeler geçerlidir ancak tutarlı değildir (örneğin, verilen ifadelerde bir çelişki vardır). Eski falso quodlibet'ten beri
Yes
, bu durumda çıktı almaya karar veriyoruz . - Verilen ifadeler geçerli değildir, yani verilen EBNF'ye göre formatlanmamıştır. Bu durumda ne istersen yapabilirsin.
ayrıntılar
- Verilen niteliklerin birbirinden bağımsız olduğunu varsayabilirsiniz. Bu nedenle, örneğin bir domuz aynı anda herhangi bir tutarsızlığa neden olmadan genç ve yaşlı, yeşil, kırmızı ve mavi olabilir. Bununla birlikte, bir domuz aynı anda 'yeşil' ve 'yeşil' olmayabilir, bu bir çelişkidir ve (4) de açıklandığı gibi kullanılmalıdır.
- Her özellik için, evrende verilen özelliğe sahip en az bir nesne (zorunlu olarak domuz değil) olduğunu ve buna sahip olmayan bir nesne olduğunu varsayalım.
Örnek Girişler ve Çıkışlar
Giriş:
Pigs are green. Everything that is green is also intelligent. Everything that is able to fly is also not intelligent.
Çıktı: Domuzlar yeşil ve dolayısıyla zeki olduklarından ve uçabilecek her şey akıllı olmadığından domuzlar uçamaz. Çıktı olduğunu No
.
Giriş:
Pigs are old. Everything that is not able to fly is also not old.
Çıktı: Domuzlar uçamazsa, yaşlı değillerdi. Ancak eski oldukları için çıktı almalısınız Yes
.
Giriş:
Everything that is sweet is also not old. Everything that is intelligent is also blue.
Çıktı: Maybe
.
Giriş:
Pigs are not able to fly. Everything that is red is also sweet. Everything that is sweet is also not red.
Çıktı: İlk ifade domuzların uçamayacağını ima etmesine rağmen, aşağıdaki ifadeler birbiriyle çelişmektedir ve bu nedenle çıktı olması gerekir Yes
.
Giriş:
Pigs are very smart. Pigs are able to fly.
Çıktı: İstediğiniz ne olursa olsun, Dize yukarıda belirtilen kriterlere uymadığından.
kazanan
Bu kod-golf , bu yüzden en kısa sürede cevap (bayt cinsinden) kazanır. Kazanan, ilk doğru cevap gönderildikten bir hafta sonra seçilecektir.