- モナドは、カテゴリ C のエンドファンクタとして定義されます。たとえば、C には int 型と bool 型、およびその他の構築型がオブジェクトとして含まれているとします。ここで、このカテゴリに対して定義された list モナドについて考えてみましょう。
それは非常に定義されたリストであり、エンドファンクターであり、int型をList [int]にマップし(これは関数として解釈できますか?)、boolをList [bool]にマップし、(これも関数ですか?)モーフィズムintをマップします- > bool to List[int] -> List[bool]
ですから、これまでのところ、それは理にかなっています。しかし、私を深い混乱に陥れているのは、それに伴う必要のある自然な変換の追加定義です。Unit... int を List[int] に変換します (List ファンクターの定義はすでにこれを暗示していませんか? これは私が持っている大きな混乱の 1 つです
b. List ファンクターは、int から List[bool] ではなく、int から List[int] へのマッピングとして常に理解する必要がありますか?
c. int から List[int] へのユニットの自然な変換は、List をファンクターとして定義することによって暗示される int から List[int] へのマップとは異なりますか? これは私の以前の質問の再表明にすぎないと思います。