Skip to content

Instantly share code, notes, and snippets.

@sofish
Created November 1, 2012 08:58
Show Gist options
  • Save sofish/3992575 to your computer and use it in GitHub Desktop.
Save sofish/3992575 to your computer and use it in GitHub Desktop.
write a code snippet to print itself
// JS:
(function(){console.log('(' + arguments.callee.toString() + ')()')})();
// JS, recursion
~function (){
typeof i !== 'number' && (i = 0);
return (i++ < 3) &&
(fn = '~' + arguments.callee.toString() + '()') &&
(console.log(fn), eval(fn));
}();
@sofish
Copy link
Author

sofish commented Nov 1, 2012

C:

char*s="char*s=%c%s%c;main(){printf(s,34,s,34);}";
main(){printf(s,34,s,34);}
#define q(k)main(){return!puts(#k"\nq("#k")");}
q(#define q(k)main(){return!puts(#k"\nq("#k")");})

Python:

a = "print 'a = ', repr(a), '\n', repr(a)[1:-5]', a"
print 'a = ', repr(a), '\n', repr(a)[1:-5]
a = ["print 'a = ', a, '\\n', ''.join(a)"]
print 'a = ', a, '\n', ''.join(a)

Java:

class S{public static void main(String[]a){String s="class S{public static void main(String[]a){String s=;char c=34;System.out.println(s.substring(0,52)+c+s+c+s.substring(52));}}";char c=34;System.out.println(s.substring(0,52)+c+s+c+s.substring(52));}}

@ryunhe
Copy link

ryunhe commented Nov 1, 2012

<?php $s='<?php $s="%s"; echo sprintf("\'".$s."\'", $s);?>'; echo sprintf("\'".$s."\'", $s);?> 

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment