Module: Doğru Parantez Sırası (RSP)


Problem

3 /6


Tilda-omega-lambda-hesabı

Theory Click to read/hide

Birkaç tür parantez olması durumunda, her şey biraz daha karmaşık hale gelir. Bu denge değişkeni olarak işlev görecek bir yığın oluşturuyoruz. Bu gereklidir çünkü parantezler üst üste gelemez. Bir satır boyunca yürüdüğümüzde ve açılan bir parantez ile karşılaştığımızda onu yığının üzerine itiyoruz. Bir kapanış paranteziyle karşılaştığımızda, o türdeki açılış ayracı yığından çıkarmaya çalışırız. Yığın üzerinde farklı türde bir ayraç varsa, sıra geçersizdir. Yığın sonunda boş değilse sıra da geçersizdir. 

Problem

Tilda-omega-lambda-calculus, "British Sciences, Inc"in daha da yenilikçi bir gelişimidir; fonksiyonel programlama alanında. Omega-lambda hesabından farkı, yalnızca köşeli ve kıvrık parantezler koyabilmesidir. Fil şeklindeki parantezler de planlandı, ancak şirket UNICODE standardını değiştiremedi. 
Giriş, 10^7 karakterden uzun olmayan bir tilde-omega-lambda ifadesidir. Omega-lambda ifadeleri için izzy indirgemesi ile aynı şekilde çalışan, ancak köşeli ve kıvrık parantezli yaklaşık işareti-izzy indirgemesinin sonucunu yazdırmanız gerekir.

 izzy-reduction'ın bu tür ifadeler üzerindeki işlemlerden biri olduğunu hatırlayın. Çalıştırıldığında ifadedeki parantez dizisinin doğru olup olmadığı kontrol edilir. Terimler dikkate alınmaz. Sıralama doğruysa gg terimi olur, değilse wp terimi olur. 
 

 

Örnekler
# Girdi Çıktı
1 ana{izzy[lol](ttt)} gg