Haskellの命名規則
この記事を読む
気になったやつだけメモるmrsekut.icon
型変数
f
FunctorとApplicative
Applicativeもfを使うのねmrsekut.icon
m
Monad, Semigroup, Monoid
関数内の変数
パターンマッチでの一時変数などの話mrsekut.icon
p
述語である関数
つまり返り値がBoolな関数
go
関数のSuffix
'
'ありと、'なしの関数は型は全く同じ
'の方は、正格であることを示す
F
Functor制約のある引数を取ることを示す
Fありの関数がある場合は、Fなしとの相対を示すのねmrsekut.icon
つまりalterFという関数は、alterに比べて、Functorなfを取るで、ということを示してる
この相対がない場合は、Functorなfを取る関数でもわざわざFとは付けないだろうmrsekut.icon
Libraryによってまちまち
A
上のFと同じで、Applicative制約のある引数を取る
M
上のFと同じで、Monad制約のある引数を取る
_
返り値なし
数値
引数の個数
By/On
Prefix
un/get/run
newtypeのrecord内で使う
m
小文字が続く場合はmonadicな型で機能することを意味する
suffixの話と同じ
e.g. mfilter
大文字が続く場合はMaybe型な値であることを意味する
e.g. mPath←Maybe型
いやー、コレは難しいmrsekut.icon
初見では区別できなそうという意味で
mk
「make」ねmrsekut.icon
RecordのPrefix
code:hs
data User = User
{ userId :: Int
, userName :: Text
}
fieldが関数名になって競合しうるので、↑ではid, nameとかではなく、userIdのような区別できる名前をつける
記号について
<と>で囲むやつ
なるほどmrsekut.icon*2
e.g. $, <$>, <<$>>
上の記事の型比較を見ればわかりやすいmrsekut.icon
!
e.g. $!, <$!>