View Source Document

Chris Pressey.md

Commentary by Chris Pressey

This work is distributed under a CC-BY-ND-4.0 license, with the following explicit exception: the ratings may be freely used for any purpose with no limitations.

Functional Programming

Structure and Interpretation of Computer Programs

There's a section on amb and parsing vs generation (section 4.3). Many, many other things.

Purely Functional Data Structures

.

ACM Symposium on LISP and Functional Programming, 1984

Some decent papers in these conference proceedings.

A tutorial on the universality and expressiveness of fold

Hutton talks about the universal property of fold, showing that it can be used in proofs to avoid the need for inductive proofs. If I was feeling bold, I might go one further and say: the universal property of fold is induction!

Total Functional Programming

It's a very interesting paper and you should read it. I should maybe write a more cogent summary of it here at some point. I would take some issue with the conclusion about a "dichotomy of language design" near the very end of the paper. Due to the Halting problem, there are indeed programs that are in R (they always halt) but we cannot prove they are in R; but I don't see this affecting a "dichotomy in language design" very materially, for several reasons:

Turner, Bird, Eratosthenes: An Eternal Burning Thread

Often it's straightforward but sometimes it's tricky to prove that recursive functions terminate or that corecursive functions are productive. I agree.

Fast and Loose Reasoning is Morally Correct

Wow. Well, I think it's good to understand that "Fast and Loose" has a specific meaning here (it means, to treat functions as terminating (or total) even if you don't know for sure that they are), as does "morally" (it is meant in the sense of "virtually" or "essentially"), because otherwise you might find some strange senses in that title.

The idea has some merit. I don't know how well the relation they define between a partial language and a total language, justifies the idea. Clearly, the fact that they can even try to show that some results are preserved, gives it some weight.

let (rec) insertion without effects, lights or magic

I did actually read this once but I would need to re-read it. I rather got the impression the first time that it was rather specialized to a rather specific metalanguage approach. I wonder how much general wisdom could be extracted from it.

Functors, Applicatives, And Monads In Pictures - adit.io

.

functional programming - What is the origin and meaning of the phrase "Lambda the ultimate?" - Software Engineering Stack Exchange

.

compiler construction - Converting a function to use tail recursion -- a formal study - Stack Overflow

.

Do Applicative Functors Generalize the S & K Combinators? - Brandon.Si(mmons)

.

Railway Oriented Programming | F# for fun and profit

.

interpreters - How to implement scheme\'s letrec in a lazy dialect? - Computer Science Stack Exchange

The question has not been answered on the site.

Recitation 21: Let Expressions & The Environment Model

.

PseudoPower/AFSM: Arrowized functional state machines

.