Intensional Programming in Joy: Introspection with a Single Operator
2025-02-12
This article explores intensional programming in Joy, a stack-based functional programming language. Joy itself is extensional, lacking the ability to 'dissect' code blocks. The author proposes two intensional operators: 'map' and 'quota', proving their mutual expressibility. While behaviorally equivalent, intensional programs can distinguish a single operator from a subprogram with multiple commands. This opens avenues for exploring weaker notions of equivalence in intensional languages and demonstrates a robust approach to introducing intensionality in minimalist languages like Joy.