8、函数式编程中的Functor、Bifunctor和Applicative Functor

函数式编程中的Functor、Bifunctor和Applicative Functor

1. 基础运算与类型定义

1.1 基础运算示例

以下是一些基础运算示例:
- Nothing $> 1 ➔ Nothing
- Vec3 50 17 29 $> 1 ➔ Vec3 1 1 1 ,当我们不需要之前计算得到的 Vec3 结果,但在计算成功时后续需要一个单位向量时,这个运算会很有用。若计算失败,则会得到 Nothing
- unzip 是列表 unzip 操作的泛化,例如:
- unzip (Just ("Hello", "World")) ➔ (Just "Hello", Just "World")
- unzip (Just (Vec3 1 1 1, Vec3 1.0 1.0 1.0)) ➔ (Just (Vec3 1 1 1), Just (Vec3 1.0 1.0 1.0))

1.2 玩家数据类型定义

我们可以设计一个类型来存储任何游戏的信息,每个玩家在任何时刻都有一些牌和额外的状态(如金钱数量、当前得分、历史记录等)。定义如下:

data PlayerData a = PlayerData Deck a

这里的

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值