Page 3 of 3

Re: [Mini-Challenge #4] : Quine

Unread postPosted: 21 Aug 2014, 15:20
by Adriweb
Je viens de comprendre ta proposition... :D

Au début, j'avais cru que tu avais mis juste '1' comme source, d'où la différence avec l'erreur.
Mais la même erreur étant provoquée avec le texte complet, je suppose que c'est une entrée acceptée/acceptable :)

Bien "trouvé" !

Re: [Mini-Challenge #4] : Quine

Unread postPosted: 22 Aug 2014, 12:35
by Adriweb
Anecdote : si on met juste un =, on obtient :
-- TI.SCRIPTAPP:1: unexpected symbol near '='

:P

Re: [Mini-Challenge #4] : Quine

Unread postPosted: 22 Aug 2014, 16:41
by pierrotdu18
Code: Select all
# ruby
l=92.chr;eval s="s=s.dump[r=1..-2].gsub(/("+l*4+"){4,}(?!\")/){|t|'\"+l*%d+\"'%(t
.size/2)};5.times{s=s.dump[r]};puts\"# python\\nprint(\\\"# perl\\\\nprint(\\\\\\
\"# lua"+l*4+"nprint("+l*7+"\"(* ocaml *)"+l*8+"nprint_endline"+l*15+"\"-- haskel
l"+l*16+"nimport Data.List;import Data.Bits;import Data.Char;main=putStrLn("+l*31
+"\"/* C */"+l*32+"n#include<stdio.h>"+l*32+"nint main(void){char*s[501]={"+l*31+
"\"++intercalate"+l*31+"\","+l*31+"\"(c(tail(init(show("+l*31+"\"/* Java */"+l*32
+"npublic class QuineRelay{public static void main(String[]a){String[]s={"+l*31+"
\"++intercalate"+l*31+"\","+l*31+"\"(c("+l*31+"\"brainfuck"+l*64+"n++++++++[>++++
<-]+++++++++>>++++++++++"+l*31+"\"++(concat(snd(mapAccumL h 2("+l*31+"\"110"+l*31
+"\"++g(length s)++"+l*31+"\"22111211100111112021111102011112120012"+l*31+"\"++co
ncatMap("+l*32+"c->let d=ord c in if d<11then"+l*31+"\"21002"+l*31+"\"else"+l*31+
"\"111"+l*31+"\"++g d++"+l*31+"\"22102"+l*31+"\")s++"+l*31+"\"2100211101012021122
2211211101000120211021120221102111000110120211202"+l*31+"\"))))))++"+l*31+"\","+l
*63+"\""+l*64+"n"+l*63+"\"};int i=0;for(;i<94;i++)System.out.print(s[i]);}}"+l*31
+"\")))))++"+l*31+"\",0};int i=0;for(;s[i];i++)printf("+l*63+"\"%s"+l*63+"\",s[i]
);puts("+l*63+"\""+l*63+"\");return 0;}"+l*31+"\");c s=map("+l*32+"s->"+l*31+"\""
+l*63+"\""+l*31+"\"++s++"+l*31+"\""+l*63+"\""+l*31+"\")(unfoldr t s);t[]=Nothing;
t s=Just(splitAt(if length s>w&&s!!w=='"+l*31+"\"'then 501else w)s);w=500;f 0=Not
hing;f x=Just((if x`mod`2>0then '0'else '1'),x`div`2);g x= reverse (unfoldr f x);
h p c=let d=ord c-48in(d,replicate(abs(p-d))(if d<p then '<'else '>')++"+l*31+"\"
."+l*31+"\");s="+l*31+"\"# ruby"+l*32+"n"+l*31+"\"++"+l*31+"\"l=92.chr;eval s=\"+
(z=l*31)+\"\\\"\"+s+z+\"\\\""+l*31+"\"++"+l*31+"\""+l*32+"n"+l*31+"\""+l*15+"\""+
l*7+"\")"+l*4+"n\\\\\\\")\\\")\"########### (c) Yusuke Endoh, 2009 ###########\n"


The Ruby code generates Python code, which generates Perl code, which generates Lua code, which generates OCaml code, which generates Haskell code, which generates C code, which generates Java code, which generates Brainfuck code, which generates Whitespace code, which generates Unlambda code, which generates the original Ruby code again.


:O

Re: [Mini-Challenge #4] : Quine

Unread postPosted: 22 Aug 2014, 16:54
by Adriweb
Y'a des fous/génies, sur cette terre...

Re: [Mini-Challenge #4] : Quine

Unread postPosted: 22 Aug 2014, 16:58
by pierrotdu18
Oui, là on peut vraiment parler de génie... :O

Re: [Mini-Challenge #4] : Quine

Unread postPosted: 22 Aug 2014, 21:52
by technolapin
Je comprend absolument aucune ligne de ce code xD
Mais cela voudrais dire que l'on peut avoir java sur nspire? oO (avec le lagg, bien sûr)

Re: [Mini-Challenge #4] : Quine

Unread postPosted: 22 Aug 2014, 22:54
by pierrotdu18
Il crée le code, il crée pas les interprétateurs :p