合集-Haskell

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