カテゴリ理論とhaskellに関するncatlabのページによると、 ”



nlabページで使用される精度レベルでは、値は グローバル要素 – すなわち、$ A $型の値は、$ 1 からA


  1. First, actual Haskell does not actually form a category in the
    sense that we would hope — the seq operator breaks a
    lot of the program equivalences we need. However, if it were
    removed, then the pure fragment of Haskell would form a category
    (basically corresponding to the category of domains and continuous

  2. However, global elements in “Hask” (how I hate this
    terminology!) are not precisely values, since the nonterminating
    computation is an inhabitant of every type, and so for every type
    $A$ there is a map $mathsf{loop}_A : 1 to A$ which just runs

    If you want to distinguish between values and nonterminating
    computations, then you need a somewhat more complicated setup,
    corresponding to the models of Paul Blain Levy’s call-by-push-value.

    There, you work with two categories — one, a category of
    values, and the other, a category of computations, with an
    adjunction which gives you two functors, one embedding values into
    computations and the other embedding computations into values.


メールアドレスが公開されることはありません。 * が付いている欄は必須項目です