1. Another quine
- Posted by Davi Tassinari de Figueiredo <davitf at USA.NET> Aug 21, 2000
- 506 views
- Last edited Aug 22, 2000
Hi again, I know most of you are not interested at all in this, but I thought someone might like it: I've just made another program that prints itself on the screen. Although it is somewhat larger than my previous one (removing the comment and making some minor modifications, that one becomes 453 bytes long, while this one is 545 bytes long), I think this one uses a more interesting method (?). -- begin code atom k,b constant q='"',s='\\',n='\n',r=q&s,z={s&q,s&s},a={ "atom k,b constant q='\"',s='\\\\',n='\\n',r=q&s,z={s&q,s&s},a={", "}puts(1,a[1]&n&q)for o=1to length(a[1])do b=a[1][o]k=find(b,r)if k", "then puts(1,z[k])else puts(1,b)end if end for for o=2to 4do", "puts(1,q&','&n&q&a[o])end for puts(1,q)for o=2to 4do puts(1,n&a[o])end for" }puts(1,a[1]&n&q)for o=1to length(a[1])do b=a[1][o]k=find(b,r)if k then puts(1,z[k])else puts(1,b)end if end for for o=2to 4do puts(1,q&','&n&q&a[o])end for puts(1,q)for o=2to 4do puts(1,n&a[o])end for -- end code Regards, Davi Figueiredo davitf at usa.net
2. Re: Another quine
- Posted by Pete Eberlein <xseal at HARBORSIDE.COM> Aug 22, 2000
- 490 views
Hi Davi, This is sort of a recursive quine... -- constant x="constant %s =", y="puts(1, %s)", z="length(%s)" printf(1, sprintf("%s\"%s\\n\",\ny=\"%s\\n? x\\n%s\",\n"& "z=sprintf(y,{%s,%s+1,%s+%s})\n%s\n?x&z\n%s", {x,x,y,y,z,z,z,z,y,y}), "xx"&{"x[1..%d]","x[%d..%d]"}&"xxxyxz") -- save this to a file called "one.ex" ex one > two.ex ex two > three.ex ex three The actual quine is three.ex. Regards, -- Pete On Mon, 21 Aug 2000 23:05:44 -0300, Davi Tassinari de Figueiredo <davitf at USA.NET> wrote: >Hi again, > >I know most of you are not interested at all in this, but I thought >someone might >like it: I've just made another program that prints itself on the >screen. Although >it is somewhat larger than my previous one (removing the comment and >making some >minor modifications, that one becomes 453 bytes long, while this one is >545 bytes >long), I think this one uses a more interesting method (?). > >-- begin code > >atom k,b constant q='"',s='\\',n='\n',r=q&s,z={s&q,s&s},a={ >"atom k,b constant q='\"',s='\\\\',n='\\n',r=q&s,z={s&q,s&s},a={", >"}puts(1,a[1]&n&q)for o=1to length(a[1])do b=a[1][o]k=find(b,r)if k", >"then puts(1,z[k])else puts(1,b)end if end for for o=2to 4do", >"puts(1,q&','&n&q&a[o])end for puts(1,q)for o=2to 4do puts(1,n&a[o])end >for" >}puts(1,a[1]&n&q)for o=1to length(a[1])do b=a[1][o]k=find(b,r)if k >then puts(1,z[k])else puts(1,b)end if end for for o=2to 4do >puts(1,q&','&n&q&a[o])end for puts(1,q)for o=2to 4do puts(1,n&a[o])end >for > >-- end code > >Regards, >Davi Figueiredo >davitf at usa.net
3. Re: Another quine
- Posted by Aidan Bindoff <abindoff at ONE.NET.AU> Aug 23, 2000
- 486 views
Pete and Davi, I found your quines very interesting. They fried my synapses quite nicely. My latest creation is only 108 bytes, chasing the heels of Andy Kurnia's 101 bytes. Any suggestions for shrinking this one further? object x x="object x [12..52]) (This probably won't appear as 1 line in this message) Kind Regards, Aidan
4. Re: Another quine
- Posted by Aidan Bindoff <abindoff at ONE.NET.AU> Aug 24, 2000
- 502 views
Quine Lite, only 70 bytes per serve: object x x="object x x=%sprintf(1,x,{34&x&34})"printf(1,x,{34&x&34}) Regards, Aidan
5. Re: Another quine
- Posted by Davi Tassinari de Figueiredo <davitf at USA.NET> Aug 24, 2000
- 469 views
Aidan Bindoff wrote: >Quine Lite, only 70 bytes per serve Very nice! I didn't think it would be possible to make a quine as small as yours. Just a small modification to save another 2 bytes: constant x="constant x=%sprintf(1,x,{34&x&34})"printf(1,x,{34&x&34}) Regards, Davi Figueiredo davitf at usa.net
6. Re: Another quine
- Posted by Aidan Bindoff <abindoff at ONE.NET.AU> Aug 25, 2000
- 481 views
>Very nice! I didn't think it would be possible to make a quine as small >as yours. Just a small modification to save another 2 bytes: > >constant x="constant x=%sprintf(1,x,{34&x&34})"printf(1,x,{34&x&34}) Thanks Davi, I think that just about reaches the limit? Kind Regards, Aidan P.S I think your suggestion is actually the same size, I tried "constant x" initially.