Esolangs'a göz atıyordum ve bu dile geçtim: https://github.com/catseye/Quylthulg .
Bu dil hakkında ilginç bir şey, önek, postfix veya infix kullanmaması, üçünü de "panfix" gösterimi olarak kullanmasıdır.
İşte bir örnek. 1+2
Panfix'te normal infix'i temsil etmek için : olur +1+2+
. Operatörün hem işlenenlerden önce, arasında hem de sonrasında nasıl olduğuna dikkat edin. Başka bir örnek (1+2)*3
. Bu olur *+1+2+*3*
. Yine *
her üç yerde de işlenenlere +1+2+
ve nasıl olduğuna dikkat edin 3
.
Meydan okuma
Tahmin edebileceğiniz gibi, bu zorluktaki göreviniz bir ifadeyi infix'ten panfix'e dönüştürmektir.
Birkaç açıklama:
- Sadece dört temel işlemle uğraşmak zorundasınız:
+-*/
- Bunların tekli versiyonlarıyla uğraşmak zorunda kalmayacaksınız, sadece ikili
- Parantez ile uğraşmak zorundasın
- Normal öncelik kuralları varsayalım
*/
sonra+-
ve hepsi için birleşim bıraktı. - Sayılar negatif olmayan tamsayılar olacak
- İsteğe bağlı olarak hem giriş hem de çıkışta boşluklar olabilir
Test Durumları
1+2 -> +1+2+
1+2+3 -> ++1+2++3+
(1+2)*3 -> *+1+2+*3*
10/2*5 -> */10/2/*5*
(5+3)*((9+18)/4-1) -> *+5+3+*-/+9+18+/4/-1-*
Bu kod golf , bayt en kısa kod kazanır!
S.split``
olmalı[...S]
aslında yardım eşleşmesini rağmen,/\d+|./g
bunun yerine yukarı-ön ve işi.