以前書いた「ラムダ計算基礎文法最速マスター」では, ラムダ計算に自然数やデータ構造, 条件分岐, ループが用意されていないため, これらをラムダ項を使って模倣する方法を紹介しました. このようなことはどんなプログラミング言語でも起きうることで, たとえば, アセンブリ言語にforループが無いために, C言語で書かれたプログラムをアセンブリ言語にコンパイルするときには条件ジャンプ命令とラベルでforループを模倣する, というのも同じことです. 今回は, Javaを最小限の機能だけに制限した純粋オブジェクト指向言語で, 以下のものを実現してみます. 真偽値と条件分岐 自然数と四則演算 リスト 無限リスト さらに, これらすべてを用いて任意個の素数を列挙するプログラムを書いてみます. 完全なソースコードは一番最後にあります. 最小限のJava Javaはそれ自体純粋なオブジェクト指向言語ですが,