Drkcore

12 10 2012 Haskell Tweet

Haskellの関数従属とは「ある型が決まれば別の型が一意に決まる」という依存関係のこと

使う時にはあまり気にならないが、「| m -> s」が関数従属性を定義しているらしい。

第6回 局所的な「状態」を利用するためのStateモナド

class (Monad m) => MonadState s m | m -> s where
    get :: m s
    put :: s -> m ()

結局コレは何かというと以下のエントリが参考になる。

この「| a -> v」の部分は「aを引数に取りvを返す関数」ではなく、型同士の依存関係を関数形式で記述したものです。意味としては「aが決まればvの型が一意に定まる」ことを意味しています。型クラスにおける関数従属

具体例は関数従属の背景で丁寧に解説されているが、型推論の際の曖昧性の排除を目的としているという理解でいいのかな。

参考

  • Haskellのgeneric deriving

About

  • もう5年目(wishlistありマス♡)
  • 最近はPythonとDeepLearning
  • 日本酒自粛中
  • ドラムンベースからミニマルまで
  • ポケモンGOゆるめ

Tag

Python Deep Learning javascript chemoinformatics Emacs sake and more...

Ad

© kzfm 2003-2021