PureScript
f x スタイルの関数適用
foo = bar スタイルの宣言
Haskellの歴史的経緯によるややこしさなどを整頓した言語という側面もある
Prelude の head tail が部分関数で空リストを渡すと死ぬ
PureScriptではそもそもリスト操作関数が Prelude に入ってない。List.Data.head などはきちんと List a -> Maybe a になっている
map :: (a -> b) -> [a] -> [b] と fmap :: Functor f => (a -> b) -> f a -> f b が別れてる
map が普通にFunctorを使う
型クラスの継承関係 => が論理記号として正しくない
PureScriptでは逆
Maybe List のような型もない
正格評価される
要点
Haskell との違いを中心に
type hoge = { name :: String }
property accessor functions
\r -> r.name = _.name
operator sections
(3 + _)
>>> <<<
forall r. { name :: String | r } -> String 型は String 型のフィールド name を持つレコードを引数に取る関数