Perl 5 , Рубі , JavaScript (хром), PHP , Python , 2 , Python 3 , 1206 байт, оцінка 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 та Python 3 онлайн!
Примітка : запуск вищевказаної програми на консолі Inspector в Chrome (яка, здається, підтримує позиційні аргументи console.log), повертає правильну програму.
Пояснення
Це виявилося набагато довше, ніж я сподівався, і я теж трохи ускладнив своє життя, тож я, ймовірно, продовжую займатися цим. Я також хотів би додати ще кілька мов, але мені потрібно знайти щось, що не проти $сигіл ...
Це в значній мірі стандартний формат Куайн , де розрахунок процитувати використання трохи відрізняється для кожної мови: в Ruby , %q&використовується, PHP використовує ', JavaScript (Node.js) використовує `і Perl 5 використовує q(... ). Оскільки змінюються лише котирування, решта програми все ще виконується та діє синтаксис кожної мови. Python 2 і 3 обертаються навколо попередньої програми, використовуючи """для Python 2 і '''для Python 3.
Отримані програми Perl і Ruby не є стандартними лайнерами, додаткові q/ %qс додаються до кожної ітерації, але перша програма повертається правильно.
Результати:
- Perl 5:
eval($_=q&... q&);printf($x=q&... q&,... );//#'%`'%`'%`'%`''''''''''''"""...
- Рубі:
eval($_=%q&... %q&);printf($x=%q&... %q&,... );//#`'`'`'`'''''''''''''"""...
- JavaScript (Chrome):
eval($_=`... `);printf($x=`... `,... );//#%q&'%q&'%q&'%q&'''''''''''''"""...
- PHP:
eval($_='... ');printf($x='... ',... );//#`q&%`q&%`q&%`q&%''''''''''''"""...
- Пітон 2:
... _="""... """;... q="""...''''''''''''""";print(_.format(Q,_,q[0:-12]+R,"%"))
- Пітон 3:
... _='''... ''';... q='''...""""""""""""''';print(_.format(Q,_,q[0:-12]+R,"%"))
Я багато цього переробляв, сподіваюся, тут не пропустив нічого ключового. У мене все ще є цілий шлях, щоб бути десь поруч із рахунком Джо Кінга ...