5 Perl , Ruby , JavaScript (Krom), PHP , Python 2 , Python 3 , 1206 bayt, skor 6 6 /1206 = 38,6865671641791
q=1//2;s=+0;s|0;"/.__id__;#";_="""q=1//2;s=+0;s|0;"/.__id__;#";_={0}{1}{0};R=chr((39,34)[1/2>0])*12;Q=chr((39,34)[1/2==0])*3;q={0}{2}{0};print(_.format(Q,_,q[0:-12]+R,"%"))""";R=chr((39,34)[1/2>0])*12;Q=chr((39,34)[1/2==0])*3;q="""|;#<?ob_end_clean();
eval($_='"$t"?0?[$q=37 .chr+113 .chr+38 .chr,$p=(96 .chr+39 .chr)*4,$n=10 .chr,$s=39 .chr*12,$S=34 .chr*3]:eval("printf=console.log;c=String.fromCharCode;$q=c(96);$p=c(37,113,38,39).repeat(4);$n=c(10);$s=c(39).repeat(12);$S=c(34,34,34)"):[]?[$q=q(!g)^PA,$p=HARHARHARHAR^od2od2od2od2,$n=R^X,$s=bbbbbbbbbbbb^EEEEEEEEEEEE,$S=hhh^JJJ]:[$q=O^h,$p=str_repeat(RHa3^w9GS,4),$n=R^X,$s=str_repeat(b^E,12),$S=HHH^jjj];//#');printf($x='q=1//2;s=+0;s|0;"/.__id__;#";_=%7$sq=1//2;s=+0;s|0;"/.__id__;#";_={0}{1}{0};R=chr((39,34)[1/2>0])*12;Q=chr((39,34)[1/2==0])*3;q={0}{2}{0};print(_.format(Q,_,q[0:-12]+R,"%8$s"))%7$s;R=chr((39,34)[1/2>0])*12;Q=chr((39,34)[1/2==0])*3;q=%7$s|;#<?ob_end_clean();%5$seval($_=%3$s%1$s%3$s);printf($x=%3$s%2$s%3$s,$_,$x,$q,$p,$n,$s,$S,"%8$s",![]||([]+[])?$n:"");//#%4$s%6$s%7$s;print(_.format(Q,_,q[0:-12]+R,"%8$s"))%9$s',$_,$x,$q,$p,$n,$s,$S,"%",![]||([]+[])?$n:"");//#`q&%`q&%`q&%`q&%''''''''''''""";print(_.format(Q,_,q[0:-12]+R,"%"))
Perl, Ruby, PHP, Python 2 ve Python 3'ü çevrimiçi doğrulayın!
Not : Yukarıdaki programı Chrome'daki Inspector konsolunda çalıştırmak (konum bağımsız değişkenlerini desteklediği anlaşılıyor console.log
) doğru programı döndürür.
açıklama
Bu umduğumdan çok daha uzun çıktı ve hayatımı da biraz daha zorlaştırdım, bu yüzden muhtemelen onunla uğraşmaya devam edeceğim. Ben de daha fazla dilde eklemek istiyorum, ama bir $
sigil umursamayan bir şey bulmak gerekir ...
Kullanımına alıntı hesaplanması her dil için biraz farklı burada hemen hemen standart bir quine biçimi şöyledir: Ruby %q&
, PHP kullanır kullanılır '
, JavaScript (node.js) kullanır `
yararlı kullanımlarını ve Perl 5 q(
... )
. Yalnızca tırnak işaretleri değiştiğinden, programın geri kalanı hala her dilde çalıştırılabilir ve geçerli bir sözdizimidir. Python 2 ve 3, """
Python 2 ve '''
Python 3 için önceki programın etrafına sarılır .
Ortaya çıkan Perl ve Ruby programları standart satırlar değildir, her yinelemeye ek q
/ %q
s eklenir, ancak ilk program doğru şekilde döner.
Sonuçlar:
- Perl 5:
eval($_=q&
... q&);printf($x=q&
... q&,
... );//#'%`'%`'%`'%`''''''''''''"""
...
- Ruby:
eval($_=%q&
... %q&);printf($x=%q&
... %q&,
... );//#`'`'`'`'''''''''''''"""
... ...
- JavaScript (Chrome):
eval($_=`
... `);printf($x=`
... `,
... );//#%q&'%q&'%q&'%q&'''''''''''''"""
...
- PHP:
eval($_='
... ');printf($x='
... ',
... );//#`q&%`q&%`q&%`q&%''''''''''''"""
...
- Python 2:
... _="""
... """;
... q="""
...''''''''''''""";print(_.format(Q,_,q[0:-12]+R,"%"))
- Python 3:
... _='''
... ''';
... q='''
...""""""""""""''';print(_.format(Q,_,q[0:-12]+R,"%"))
Bunu çok çalıştım, umarım burada hiçbir şeyi kaçırmadım. Hala Jo King'in skoruna yakın bir yerde olmak için bir yolum var ...