Quine

Stato
Discussione chiusa ad ulteriori risposte.

R4z0r_Cr4sH

Utente Electrum
10 Giugno 2007
501
11
6
148
preso dal forum di blacklight (dato che mi sembra un bel esercizio) postato da rk0.Scrivere un'algoritmo quine:
wikipedia ha detto:
In informatica, un quine è un algoritmo che riproduce il suo stesso codice sorgente senza usare funzioni di I/O (aprire il file sorgente e stampare il suo contenuto è considerato "barare").Si tratta di un classico esercizio di programmazione che spesso viene dato a programmatori senza molta esperienza per testare le loro capacità. Per il proprio divertimento, molti programmatori esperti si impegnano a sviluppare il quine più corto possibile in ogni linguaggio di programmazione.

il mio in java (non ne ho mai fatto uno quindi non so se è giusto):
Codice:
public class Quine{public Quine(){String s="String";String pb="public";System.out.println(pb+" class "+" Quine{"+pb+" Quine(){"+s+" s=\""+s+"\";"+s+" pb=\""+pb+"\";System.out.println(pb+\" class \"+\" Quine{\"+pb+\" Quine(){\"+s+\" s=\"\"+s+\"\";\"+s+\" pb=\"\"+pb+\"\\\";}}");}}
 
Quindi qualcosa del tipo:
Codice:
function f() {
    alert(f.toString() + "f()");
}f()
?

(Javascript)
 
se vai su wikipedia c'è un'esempio in javascript...per il java non c'è quindi non so di preciso.
 
su wikipedia italiano in javascript c'è:
Codice:
unescape(q="unescape(q=%22*%22).replace('*',q)").replace('*',q)
 
R4z0r_Cr4$H ha detto:
preso dal forum di blacklight (dato che mi sembra un bel esercizio) postato da rk0.Scrivere un'algoritmo quine:
wikipedia ha detto:
In informatica, un quine è un algoritmo che riproduce il suo stesso codice sorgente senza usare funzioni di I/O (aprire il file sorgente e stampare il suo contenuto è considerato "barare").Si tratta di un classico esercizio di programmazione che spesso viene dato a programmatori senza molta esperienza per testare le loro capacità. Per il proprio divertimento, molti programmatori esperti si impegnano a sviluppare il quine più corto possibile in ogni linguaggio di programmazione.

il mio in java (non ne ho mai fatto uno quindi non so se è giusto):
Codice:
public class Quine{public Quine(){String s="String";String pb="public";System.out.println(pb+" class "+" Quine{"+pb+" Quine(){"+s+" s=\""+s+"\";"+s+" pb=\""+pb+"\";System.out.println(pb+\" class \"+\" Quine{\"+pb+\" Quine(){\"+s+\" s=\"\"+s+\"\";\"+s+\" pb=\"\"+pb+\"\\\";}}");}}
Mi sa che non va bene Razor, perché nel System.out che metti all'interno dell'altro System.out manca la ripetizione di se stesso, in pratica alla fine dovresti avere una serie infinita di System.out uno dentro l'altro... Non so se mi sono spiegato bene.
 
ecco..precisamente quello che avevo pensato io...ed è stranissima come cosa...cioè...se devi stampare il codice del tuo programma vai in loop,è proprio questo che non mi spiego...e da 2 settimane che ci penso!
 
R4z0r_Cr4$H ha detto:
ecco..precisamente quello che avevo pensato io...ed è stranissima come cosa...cioè...se devi stampare il codice del tuo programma vai in loop,è proprio questo che non mi spiego...e da 2 settimane che ci penso!

Infatti ci sono altri metodi, tipo quello di meh è geniale, anche quello di Oromis xD
@ Oromis: in che estenzione salva HQ9+?
 
Si, mi sto facendo un interprete in Python di HQ9+ per divertimento, ma non in che estensione salva (e non so neanche come cavolo implementare l'operatore + xD)...
 
Stato
Discussione chiusa ad ulteriori risposte.