Core Concepts
Circular programs in functional languages can efficiently implement classic data structures without the need for updatable variables, providing space-efficient solutions.
Abstract
関数型言語における循環プログラムは、更新可能な変数を必要とせずに古典的なデータ構造を効率的に実装できます。循環プログラムは、循環および双方向リスト、スレッド付き木、およびキューなどのクラシックなデータ構造を使用することができます。これらの構造は通常、更新可能な変数が必要とされると考えられています。また、一般的なプログラムよりもスペース効率が高く、後でガベージコレクションされる中間構造の作成を回避することができます。関数型言語では遅延評価が必要です。
Stats
1987年1月にMonash大学のコンピュータサイエンス部門で発表されたTR 87/91 [1]に基づいています。
Bird [2]は、「データの複数回トラバースを排除するために循環プログラムを使用する」と述べています。
Hughes [7]は、「遅延メモ関数」というメカニズムを記述しています。
Quotes
Using circular programs to eliminate multiple traversals of data. - R. S. Bird, Acta Informatica, 1984
A circular program can often be written quite easily in such a language. - Content
A lazy functional language is needed to write a circular program. - Content