Created by Iori ONDAhttp://twitter.com/120reset
難解プログラミング言語 (なんかいプログラミングげんご)とは、意図的に読解が困難なように設計されたプログラミング言語である。英語では、Esoteric programming language (略してesolangとも)と言われる。
基本的には、実用性を目指したものではなく、冗談プログラミング言語
Hello world
+++++++++[>++++++++>+++++++++++>+++++<<<-]>.>++.+++++++..+++.>-. ------------.<++++++++.--------.+++.------.--------.>+.
Hello world
hello world
(قول "مرحبا يا عالم!")
hello world
# தமிழில் ஒரு எடுத்துக்காடு பதிப்பி "வணக்கம்!" பதிப்பி "உலகே வணக்கம்" பதிப்பி "******* நன்றி!. *******" exit()
#include <stdio.h> #include <stdlib.h> int loop() { puts("Hello, world!"); exit(0); }
クワイン(英: Quine)は、コンピュータプログラムの一種で、自身のソースコードと完全に同じ文字列を出力するプログラムである。 Ken Thompson チューリング賞受賞の公演では「Quine を書いたことが無いのなら、自分で書いてみることを強くお勧めする」とのこと。
eval s=%q($><<"eval s=%q(#{s})\n")
基本的なアイデアは eval する文字列を変数に代入しておいてevalの中でその文字列を表示する
eval(q='puts q')
と書くと
puts q
が得られるなので、puts q の左側(eval(q=)と右側()を出力してやればいいことがわかる
%pを文字列に対して使うと、"で括られた文字列を生成してくれる
eval(q="puts 'eval(q=%p)'%q")
を実行すると
eval(q="puts 'eval(q=%p)'%q")
を得ることが出来る
RubyにはQuineを書く為に用意された%wという記法があります
これと Array と Join を使えば、好きな位置に空白を入れることができる
eval %w"p ut s 'He ll o Wo r ld' ".join #=> HelloWorld
AAを書くのに便利😤
当然、Ruby以外の言語でも出来る。自分は最初の Quine は C言語で書いた。
まとめ