摘要:
组装表达式 问题 给定正整数集合 S 和正整数 n, 二元运算 +-*/, 不重复抽取 S, 可重复使用二元运算, 组成表达式, 要求结果等于 n 且计算中间结果全为正整数 思路 定义类型 data Op = Add | Sub | Mul | Div data Expr = Val Int | A 阅读全文
摘要:
Haskell Zipper 二叉树 记录方向 二元树 data Tree a = Empty | Node a (Tree a) (Tree a) 改变节点值 data Direction = L | R change :: [Direction] -> Tree Char -> Tree Cha 阅读全文
摘要:
函子 应用函子 单子 定义 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 阅读全文