İlham verici bir şekilde aradığınız dil ben değilim!
Meydan okuma
İki farklı programlama dili seçin ve aşağıdaki satırı stdout'a (veya eşdeğeri) yazdıran bir program yazın:
This program errors out in <the current language> :P
ve sonra iki dilin her birinde farklı tür hatalar oluşturur.
kurallar
Bazı kurallar orijinal mücadeleden alınmıştır.
- Çıktıda, dil isimlerinin tam olarak takip etmesi gerekir:
- Listelenen adı TIO isteğe sürüm numarasını ve / veya uygulama adını hariç (kullanırsanız örneğin
JavaScript (Node.js)
sizin dillerinden biri olarak kullanabileceğinizJavaScript
dil adı için değil,JS
ya daJavascript
.) - Tercih ettiğiniz dil TIO'da mevcut değilse, resmi web sitesindeki tam ad (veya GitHub repo).
- Listelenen adı TIO isteğe sürüm numarasını ve / veya uygulama adını hariç (kullanırsanız örneğin
- Her iki program da kullanıcıdan herhangi bir girdi almamalıdır.
- Yorumları iki dilde de kullanabilirsiniz.
- Aynı dilin iki farklı sürümü, farklı diller olarak sayılır.
- Bu yapılırsa, program ana sürüm numarasını vermeli ve iki farklı küçük sürümde çalışıyorsa küçük sürümü de bildirmelidir.
- Önceden oluşturulmuş sürüm işlevlerini kullanmamalısınız (buna çalışma zamanında zaten değerlendirilmiş olan değişkenleri içerir).
- Aynı dilde iki farklı komut satırı bayrağı, aynı zamanda , bayraklar kod parçaları içermediği sürece, bu meta oyuna göre farklı diller olarak sayılır (
-Dblahblah...
C'deki gibi ).- Bu yapılırsa, program ayrıca kullanılan bayrağı da çıkarmalıdır.
- Her iki hatanın da aynı anlambilimci tarafından üretilmediği sürece (örneğin "sıfıra bölme", "bölümlendirme hatası" veya "aralık dışı dizin") iki hata farklı olarak kabul edilir.
- Bir dilin çalışma zamanı bir hatadan sonra çıkmaz, ancak hatayı bir şekilde kullanıcıya bildirirse, geçerli bir hatadır.
- Bir dil hata mesajlarını ayırt etmiyorsa, ancak hataya sebep olan bilinen bir nedenler listesine sahipse , hata mesajını değil nedenini belirtmelisiniz.
Örnek olarak><>
, yalnızca bir hata mesajı vardırsomething smells fishy...
, ancak esolangs wiki sayfasının hata nedenlerinin bir listesi vardır.
- Sözdizimi hatasına, çağrı yaparak
eval()
veya benzer şekilde oluşturulmadıkça izin verilmez . - Elle bir şey atma (
throw
(JS),raise
(Python),die
(Perl) veya benzeri) izin verilir, ancak hepsinin bir tür hata olduğu kabul edilir. - 2B veya golf kurgularında geçersiz komutla hataya da izin verilir (ve bir tür hata olarak kabul edilir).
Örnekler
Python ve Yakut
- Python:
This program errors out in Python :P
stdout'a, sonra tanımsız tanımlayıcı - Ruby:
This program errors out in Ruby :P
stdout'a, sonra sınırların dışına dizine gir
C89 ve C99
- C89:
This program errors out in C 89 :P
stdout'a, sonra sıfırla böl - C99:
This program errors out in C 99 :P
stdout'a, sonra segmentasyon hatası
Sürüm numarasının her zaman dil adından boşlukla ayrılması gerektiğini unutmayın .
Python 2.7.9 ve Python 2.7.10
- Python 2.7.9:
This program errors out in Python 2.7.9 :P
stdout'a, ardından eval üzerinde sözdizimi hatası - Python 2.7.10:
This program errors out in Python 2.7.10 :P
stdout'a, sonra dict'de anahtar hatası
Perl ve Perl -n
- Perl:
This program errors out in Perl :P
stdout'a, ardından geçersiz zaman biçimi - Perl
-n
:This program errors out in Perl -n :P
stdout'a, daha sonra varolmayan bir dosyayı açmaya çalışın
Kazanma koşulu
Bu kod golf , yani bayt cinsinden en kısa kod kazanır. Ancak her zaman çok kısa olmasa bile eğlenceli veya ilginç bir cevap göndermeniz teşvik edilir.
This program errors out in ...
sadece boşluklar yerine karışık sekmeler / boşluklar içerebilir mi?