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
を持つレコードを引数に取る関数