Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/fumieval/lazykq

Pure Functional Joke Programming Language
https://github.com/fumieval/lazykq

Last synced: 23 days ago
JSON representation

Pure Functional Joke Programming Language

Awesome Lists containing this project

README

        

LazyKQ ver. ダァダァダァダァダァダァ

LazyKQはあの「ダァ!シエリイェス!!」だけを使うプログラミング言語ダァ!

ダァダァダァダァダァダァ!オプション!シテイシイェス!!

kq [options] [filename]

オプション:
-d ソースコードを標準入力から読み込みまス。
-r 出力をバイト列に変換せずに、式のまま返します。

ダァダァダァダァダァダァダァ! ビルドシイェスス!

コンパイルにはGHCが必要ダァ!
$ ghc kq.hs -o kq
$ ./kq README
Hello, world!

ダァダァダァダァダァダァ!ダァダァ! ブンポウ!シメシイェスス!

「ダァ、シエリ、イェ、ス」以外の文字は無視されまス。
ダァは関数適用、シエリはS、イェはK、スはIを表しまス。半角カナにも対応しています。

「ダァAB」で、AをBに適用しまス。
「ス」は引数をそのまま返す関数ダァ!
「イェ」は引数を2つ取り、最初の引数だけを返ス関数でス。
「シエリ」は引数を3つ取り、「3つ目の引数に1つ目の引数を適用したもの」を「3つ目の引数に2つ目の引数を適用したもの」に適用する関数でスス。

コードが空の場合は恒等関数になりまス。
#から後ろは行末まで無視されイェス。

関数はカリー化されており、引数はひとつずつ適用されまス。そのため、引数を複数取る場合はそれだけダァが必要になるのダァ。このように評価されまス。

ダァスx = x スは恒等関数でス。

ダァ ダァイェ x y = x ヒキスウの一つ目を返しまス。
ダァ ダァ ダァシエリx y z = ダァ!ダァxzダァyz やや複雑ですが必須でス。

ダァ!ニュウシュツリョクシェス!

 入力は1バイト単位でチャーチ数のリストに変換されます。入力の終わりはチャーチ数256で表されまス。
 結果もチャーチ数のリストとなり、256以上の数が出現するまで標準出力に書き出されまス。
 256以上の数が出現した場合、256を引いた値をリターンコードとして終了しまス。

kq.hs LazyKQのインタプリタ。

README このファイル。これ自体もLazyKQのコード。

examples

echo.kq 入力をそのまま返す。

helloworld.kq Hello, worldを表示。

primes.kq 素数を順に表示。

unlambda.kq Unlambdaの完全なインタプリタ。

Hello, world!

ダァ!イェダァダァ!シエリダァダァ!シエリス!ダァ!イェダァダァ!シエリダァ!イェダァダァダァ!シエリスス!ダァダァ!シエリダァダァ!シエリダァ!イェシエリイェス!
ダァダァ!シエリダァダァ!シエリダァ!イェシエリイェダァダァ!シエリダァダァ!シエリダァ!イェシエリイェダァダァダァ!シエリダァダァ!シエリススス!
ダァダァ!シエリダァダァ!シエリダァ!イェシエリイェス!ダァ!イェダァダァ!シエリダァダァ!シエリス!ダァ!イェダァダァ!シエリダァダァ!シエリダァ!イェシエリイェ!
ダァダァダァ!シエリダァダァ!シエリダァ!イェシエリイェス!ダァダァ!シエリダァ!イェダァダァ!シエリダァダァ!シエリダァ!イェシエリイェス!
ダァダァ!シエリダァダァ!シエリダァ!イェシエリイェダァダァダァ!シエリスス!ダァダァ!シエリダァダァ!シエリダァ!イェシエリイェス!ダァ!イェダァダァ!シエリダァダァ!シエリス!
ダァ!イェダァダァ!シエリダァ!イェダァダァダァ!シエリスス!ダァダァ!シエリダァダァ!シエリダァ!イェシエリイェス!ダァダァダァ!シエリスス!
ダァダァ!シエリダァダァ!シエリダァ!イェシエリイェダァダァ!シエリダァダァ!シエリダァ!イェシエリイェス!ダァ!イェダァダァ!シエリダァダァ!シエリス!
ダァ!イェダァダァ!シエリダァ!イェダァダァダァ!シエリスス!ダァダァ!シエリダァダァ!シエリダァ!イェシエリイェス!ダァダァダァ!シエリスス!
ダァダァ!シエリダァダァ!シエリダァ!イェシエリイェダァダァ!シエリダァダァ!シエリダァ!イェシエリイェス!ダァ!イェダァダァ!シエリダァダァ!シエリス!
ダァ!イェダァダァ!シエリダァダァ!シエリダァ!イェシエリイェダァダァ!シエリダァ!イェダァダァ!シエリダァダァ!シエリダァ!イェシエリイェス!
ダァダァ!シエリダァダァ!シエリダァ!イェシエリイェダァダァ!シエリダァ!イェダァダァ!シエリダァダァ!シエリダァ!イェシエリイェス!ダァダァダァ!シエリスス!
ダァダァ!シエリダァダァ!シエリダァ!イェシエリイェダァダァ!シエリダァダァ!シエリダァ!イェシエリイェス!ダァ!イェダァダァ!シエリダァダァ!シエリス!
ダァ!イェダァダァ!ダァダァ!シエリダァダァ!シエリダァ!イェシエリイェダァダァダァ!シエリダァダァ!シエリスス!ス!ダァダァ!シエリダァダァ!シエリダァ!イェシエリイェス!
ダァ!シエリダァダァ!シエリダァ!イェシエリイェダァダァダァ!シエリスス!ダァダァ!シエリダァダァ!シエリダァ!イェシエリイェダァダァ!シエリダァダァ!シエリダァ!イェシエリイェス!
ダァ!イェダァダァ!シエリダァダァ!シエリス!ダァ!イェダァダァ!シエリダァ!イェダァダァ!シエリダァダァ!シエリダァ!イェシエリイェス!ダァダァダァ!シエリダァダァ!シエリススス!
ダァダァ!シエリダァダァ!シエリダァ!イェシエリイェス!ダァ!イェダァダァ!シエリダァダァ!シエリス!ダァ!イェダァダァ!シエリダァ!イェダァダァ!シエリダァダァ!
シエリダァ!イェシエリイェダァダァ!シエリダァ!イェダァダァ!シエリダァダァ!シエリダァ!イェシエリイェス!ダァダァ!シエリダァダァ!シエリダァ!イェシエリイェダァダァ!
シエリダァダァ!シエリダァ!イェシエリイェス!ダァダァ!シエリダァダァ!シエリダァ!イェシエリイェダァダァダァ!シエリダァダァ!シエリススス!
ダァダァ!シエリダァダァ!シエリダァ!イェシエリイェス!ダァ!イェダァダァ!シエリダァダァ!シエリス!ダァ!イェダァダァ!シエリダァダァ!シエリダァ!
イェシエリイェダァダァ!シエリダァ!イェダァダァ!シエリダァダァ!シエリダァ!イェシエリイェス!ダァダァ!シエリダァダァ!シエリダァ!イェシエリイェダァダァ!
シエリダァ!イェダァダァ!シエリダァダァ!シエリダァ!イェシエリイェス!ダァダァダァ!シエリスス!ダァダァ!シエリダァダァ!シエリダァ!イェシエリイェダァダァ!
シエリダァダァ!シエリダァ!イェシエリイェス!ダァ!イェダァダァ!シエリダァダァ!シエリス!ダァ!イェダァダァ!シエリダァ!イェダァダァ!シエリダァダァ!シエリダァ!イェシエリイェス!
ダァダァ!シエリダァダァ!シエリダァ!イェシエリイェダァダァ!シエリダァ!イェダァダァ!シエリダァダァ!シエリダァ!イェシエリイェス!ダァダァ!シエリダァダァ!シエリダァ!イェシエリイェダァダァダァ!シエリスス!
ダァダァ!シエリダァダァ!シエリダァ!イェシエリイェダァダァ!シエリダァダァ!シエリダァ!イェシエリイェス!ダァ!イェダァダァ!シエリダァダァ!シエリス!ダァ!イェダァダァ!シエリダァ!イェダァダァダァ!シエリスス!
ダァダァ!シエリダァダァ!シエリダァ!イェシエリイェス!ダァダァダァ!シエリスス!ダァダァ!シエリダァダァ!シエリダァ!イェシエリイェダァダァ!シエリダァダァ!シエリダァ!イェシエリイェス!
ダァ!イェダァダァ!シエリダァダァ!シエリス!ダァ!イェダァダァダァ!シエリダァダァ!シエリダァ!イェシエリイェス!ダァダァ!シエリダァ!イェダァダァ!シエリダァダァ!シエリダァ!イェシエリイェス!
ダァダァ!シエリダァダァ!シエリダァ!イェシエリイェダァダァダァ!シエリスス!ダァダァ!シエリダァダァ!シエリダァ!イェシエリイェス!
ダァ!イェダァダァ!シエリダァダァ!シエリス!ダァ!イェダァダァ!シエリダァダァ!シエリダァ!イェシエリイェダァダァ!シエリダァ!イェダァダァ!シエリダァダァ!シエリダァ!イェシエリイェス!
ダァダァダァ!シエリダァダァ!シエリスス!ス!ダァダァ!シエリダァダァ!シエリダァ!イェシエリイェス!ダァ!イェダァダァ!シエリダァダァ!シエリス!
ダァ!イェダァダァ!シエリダァ!イェダァダァ!シエリダァダァ!シエリダァ!イェシエリイェス!ダァダァ!シエリダァダァ!シエリダァ!イェシエリイェダァダァダァ!シエリスス!
ダァダァ!シエリダァダァ!シエリダァ!イェシエリイェス!ダァ!イェダァダァ!シエリダァダァ!シエリス!ダァ!イェダァダァダァ!シエリスス!ダァダァダァ!シエリスス!
ダァダァ!シエリダァダァ!シエリダァ!イェシエリイェス!ダァ!イェダァダァダァ!シエリスス!ダァダァダァ!シエリスス!ダァダァ!シエリダァダァ!シエリダァ!イェシエリイェス!!