一个比喻

有一个帖子比喻得就极其形象:项目组就像是一家餐馆,项目经理是当班经理,他决定做什么,有多少人多少资源来做多大,有多大的风险;系统架构设计师就是主厨,他设计具体做法;程序员就是厨师,配置管理员、系统集成人员、数据库管理员等角色是厨房里面的服务人员。而 SQA 和测试工程师更像是第三方的检查人员, SQA 检查的是制作流程是否正确,材料是否使用正确,卫生是否做好了,他检查所有人的工作,包括项目经理。 SQA 虽然没有决定权,但是他有建议权,他向餐馆老板负责。测试工程师则更像是试菜的,看看炒出来的菜有没有合不合口味,有没有按照客人的意思多放点辣椒,如果口味不对,他们要告诉厨房就可以了。

### 回答1: "Monad" 是一个术语,用于描述计算机科学中的一种抽象概念。它来源于数学,但在编程语言和函数式编程中有着独特的用途。 "Monad" 的定义确实涉及自我映射的幺半群的概念,但是这只是一种抽象的表述方式。最重要的是,Monad 用于描述一种用于编写复杂计算的模式,并且提供了许多有用的性质,如结合律和可组合性。 因此,在编程语言中,Monad 是一种抽象的模式,它可以用于解决许多常见的编程问题,例如错误处理、状态管理和输入/输出操作。 总的来说,"Monad" 是一种编程技巧,它可以使代码更清晰、更简单,并且更容易阅读和维护。 ### 回答2: Monad是函数式编程中的概念,用于处理副作用和状态变化的问题。它是指具有特定结构和操作的类型类(type class)。Monad可以被视为自我映射的幺半群,因为它具有单位元和结合律的性质,并支持map和flatMap等操作。 在函数式编程中,副作用和状态变化被视为不纯粹和难以控制的因素。为了处理这些问题,可以通过使用Monad来封装这些操作并保持代码的简洁性和可读性。通过将这些操作串联起来,可以避免副作用和状态变化的传递问题,使代码逻辑更加清晰。 Monad本质上是一个抽象的概念,并不是一个具体的实现。在不同的编程语言中,可以有不同的实现方式和语法糖来支持Monad。比如在Haskell中,Monad通过do记法来实现,而在Scala中,可以通过for推导来利用Monad。 在这个意义上,可以说Monad是一个比喻,因为它是一种抽象的概念,并不直接对应具体的实现。通过将Monad视为自我映射的幺半群,可以更好地理解和使用它。这种比喻的好处是可以抽象出共性,使得不同Monad类型之间的操作具有通用性,提高代码的复用性和可维护性。 总的来说,Monad是一种用于处理副作用和状态变化的抽象概念,通过将操作和状态的组合抽象为自我映射的幺半群,可以更好地管理代码逻辑。尽管Monad本身是一个抽象概念,但它在函数式编程中扮演了重要的角色,并且有着丰富的实践和应用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值