Aqui uma tarefa de programação interessante.
Escrever o código que imprime ele mesmo.

Em Python é isso:
import sys
me = open(sys.argv[0])
for line in me:
print line,
me.close()
Em Shell Script por Xisberto:
cat $0
Em PHP por Paulo André:
$file = “teste.php”;
$fcontent = file_get_contents($file);
highlight_string($fcontent, false);
obs: O que eu quero não é o problema de Quine, mas sim um programa que abra seu código-fonte e o imprima. Eu uso isso para páginas feitas em Python onde eu quero que o usuário possa ver o código-fonte da aplicação facilmente.
Se você fizer em outra linguagem e colocar nos comentários, eu o coloco dentro desse post.
Aproveite e dê uma olhada nos melhores preços de espelhos para sua casa.
Buscapé.
Your Gmail is evolving.
lol Matrix on Windows! http://youtube.com/watch?v=yyXFegTQq8s Assista antes que o Comedy Central tire do Youtube
@rcarneiro não, ele fez isso de birra mesmo.
PQP³! O que deu no Teddy pra subir na minha cama e fazer xixi! PQP!!
7 comentários
Xisberto
July 30, 2007 em 1:16 pm
Pelo desafio, pensei logo no Shell Script do Linux:
cat $0
É só isso. $0 é o caminho do programa/comando sendo executado e cat é o comando que escreve o conteúdo de um arquivo na tela.
Paulo André
July 30, 2007 em 2:27 pm
PHP… =]
Criei o arquivo “teste.php”:
E ainda vem com as cores.. =P
Paulo André
July 30, 2007 em 2:28 pm
Ops… não foi.. rs… Vou postar sem as tags PHP, ai é só acrescentar:
$file = “teste.php”;
$fcontent = file_get_contents($file);
highlight_string($fcontent, false);
Silveira
July 30, 2007 em 3:20 pm
Xisberto, nossa, impossível ficar menor.
só faltou ele descobrir qual o nome do seu próprio código.
Paulo André, wow, highlight e tudo? humilhou
Sombriks
July 31, 2007 em 4:24 am
Hahaa, olha só um SIMPLÉRRIMO em java,
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
public class EuMesmo{
private File f;
public EuMesmo() {
f = new File(”EuMesmo.java”);
}
public String getFile() throws IOException{
FileReader fr = new FileReader(f);
char[]c=new char[999];
int i = fr.read(c);
StringBuffer s = new StringBuffer();
s.append(c);
return s.toString();
}
public static void main(
String[]argumentos_que_realmente_poucos_javeiros_usam)
throws IOException{
System.out.println(new EuMesmo().getFile());
}
}
Kct
July 31, 2007 em 10:12 pm
Cara, vc tá cada vez mais maluco.
Diogo V. Kersting
September 25, 2007 em 8:48 pm
Em python da pra fazer em duas linha ^^
___
import sys
print open(sys.argv[0]).read()
____
RSS feed para os comentários desse post · TrackBack URI
Poste seu comentário