合集-Haskell
摘要:Haskell 语法糖 总结 三大本质: Case >>= 函数 语法糖 本质 模式匹配 case If-Else case Guard case Do >>= List Comprehension >>= Let lambda 函数 运算符段 lambda 函数 中缀函数 前缀函数 Record
阅读全文
摘要:Haskell 体系 编程范式 命令式编程: 修改存储值状态转换(图灵机) 函数式编程: 函数作用于参数函数调用(\(\lambda\) 演算) 结构 Package 集合 Hackage, Stackage, GHC自带, Haskell Platform Package 分发依赖 Library
阅读全文
摘要:Haskell 函数 函数应用 函数应用于实参: 实参替换右侧表达式的变量(\(\lambda\) 演算 \(\beta\) 归约), 结果是最简表达式或函数调用表达式 函数应用顺序不影响最终结果, 只影响计算步骤数和计算是否终止 函数分类 位置 前缀函数 前缀式调用 () 10级, 左结合 中缀函
阅读全文
摘要:Haskell 类型推断 理论 类型推断 编译阶段推断类型, 推断规则: \[\frac{\text{f\ ::\ A -> B\quad\ e\ ::\ A}}{f \ \ e\ ::\ B} \]基础类型由类型声明得到 其他类型由算法推断得到 Ambiguous Type Ambiguous T
阅读全文
摘要:Free Theorem 自由定理 理论 参数多态性 参数多态性: 多态函数的行为对类型变量代表的所有类型一致, 不能依赖具体类型 自由定理 自由定理: 通过函数类型中的类型变量, 可以推导出函数必须满足的等式或行为 Haskell 限制 理想化数学模型中, 自由定理基于纯函数假设, 故严格成立 但
阅读全文
摘要:λ 演算 通用 函数 函数即值, 函数仅单参数 函数定义 抽像 abstration: \((\lambda x.M)\) 函数调用 作用 application: \((f \space a)\) 函数归约 归约 reduction \[\begin{array}{lcl} ((\lambda x
阅读全文
摘要:函子 应用函子 单子 定义 Functor class Functor f where fmap :: (a -> b) -> f a -> f b fmap id == id -- 恒等律 fmap (f . g) == fmap f . fmap g -- 组合律 Applicative cla
阅读全文
摘要:Haskell Monads Monoid 幺半群 定义: 集合 \(M\) 对二元运算满足 封闭性(类型) 结合律(函数) 单位元(幺元) class Monoid m where mempty :: m mappend :: m -> m -> m mappend = (<>) mconcat
阅读全文
摘要:Haskell Zipper 二叉树 记录方向 二元树 data Tree a = Empty | Node a (Tree a) (Tree a) 改变节点值 data Direction = L | R change :: [Direction] -> Tree Char -> Tree Cha
阅读全文

浙公网安备 33010602011771号