On Dec 2, 2021, at 1:35 PM, Duncan Mak
<duncanmak(a)gmail.com> wrote:
On Tue, Nov 16, 2021 at 12:04 PM Douglas McIlroy <douglas.mcilroy(a)dartmouth.edu>
wrote:
APL is a fascinating invention, but can be so compact as to be
inscrutable. (I confess not to have practiced APL enough to become
fluent.) In the same vein, Haskell's powerful higher-level functions
make middling fragments of code very clear, but can compress large
code to opacity. Jeremy Gibbons, a high priest of functional
programming, even wrote a paper about deconstructing such wonders for
improved readability.
I went looking for this paper by Jeremy Gibbons here:
https://dblp.org/pid/53/1090.html
but didn't find anything resembling it.
What's the name of the paper?
The following paper seems APLicable here. Jeremy Gibbons also
gave a delightful talk on this.
https://www.47deg.com/media/2017/11/07/jeremy-gibbons-lambda-world-2017/
"APLicative Programming with Naperian Functors"
https://www.cs.ox.ac.uk/people/jeremy.gibbons/publications/aplicative.pdf
We show here that such a custom language design is
unnecessary: the requisite compatibility checks can
already be captured in modern expressive type systems, as
found for example in Haskell; moreover, generative
type-driven program- ming can exploit that static type
information constructively to automat- ically induce the
appropriate liftings. We show also that the structure of
multi-dimensional data is inherently a matter of Naperian
applicative functors -- lax monoidal functors, with
strength, commutative up to isomorphism under
composition -- that also support traversal.