Monad
クラスの階層構造を深く理解しようとしています。もちろん、その一部は多くの例を見ることですが、これらのクラスが最初に発見された経緯とその動機に特に興味があります。
私はMonad
s が Haskell の IO 問題の解決策として最初に登場したことを理解しており、Moggi と Wadler による 1989 年から 1992 年にそれらを紹介した論文に精通しています。
Applicatives
Conor McBride と Ross Paterson の「Applicative Programming with Effects」で紹介された場所も見てきました。
Functor
私の質問は、何がs を普及させたのかということです。Monad
はスーパークラスではないので後であると思いますFunctor
が、LISP の初期の頃から一般化されたマップ関数を使用していませんか?