Saved in:
Bibliographic Details
Main Author: Allison, Lloyd
Format: Preprint
Published: 2024
Subjects:
Online Access:https://arxiv.org/abs/2403.01866
Tags: Add Tag
No Tags, Be the first to tag this record!
Table of Contents:
  • A circular program creates a data structure whose computation depends upon itself or refers to itself. The technique is used to implement the classic data structures circular and doubly-linked lists, threaded trees and queues, in a functional programming language. These structures are normally thought to require updatable variables found in imperative languages. For example, a functional program to perform the breadth-first traversal of a tree is given. Some of the examples result in circular data structures when evaluated. Some examples are particularly space-efficient by avoiding the creation of intermediate temporary structures which would otherwise later become garbage. Lastly, the technique can be applied in an imperative language to give an elegant program.