SICP ネタです。 SICP 3章のストリームの節に、ライプニッツ級数というものが紹介されています。 pi/4 = 1 - 1/3 + 1/5 - 1/7 + ...という式です。項毎に符号が入れ替わる奇数の逆数の無限列、その総和が、パイの4分の1に収束する、というものです。 一見理解しがたい話ですが、このことの理論的背景については Wikipedia の解説を参照していただきたいと思います。 理論はさて置き、本を読んでいて「なんか簡単に JavaScript でも出来そう」と思ったので、やってみました (本文最後にデモページへのリンクがあります)。 以下、コードは全て Scheme からの翻訳です。 Stream in JavaScript まずストリームの実装を考えましょう。 ストリームとは、遅延リストとも言い、コンピュータの有限リソースの中で無限列の表現を可能にするものです (有限