程序员客栈 接不到单子_常见(但不常见)单子

本文介绍了如何在Haskell中使用列表和函数单子,探讨了它们如何适应单子结构。通过示例展示了如何在do语法中使用列表和函数单子,并解释了它们在计算上下文中的作用。文章旨在帮助理解单子的概念,特别是对于初学者。
摘要由CSDN通过智能技术生成

程序员客栈 接不到单子

上周,我们研究了Monad如何帮助您实现Haskell开发的下一个飞跃。 我们讨论了runXXXT模式,以及如何使用其余代码中的某些monad作为通用网关。 但是有时它也有助于回到基础知识。 实际上,我花了很长时间才真正掌握如何使用几个基本的monad。 或者至少,我不了解如何将它们用作单子。

在本文中,我们将研究如何使用列表monad和函数monad。 列表和功能是任何Haskeller从一开始就学到的核心概念。 但是列表数据结构和功能应用程序也是单子! 理解它们的工作方式可以使我们更多地了解单子的工作原理。

有关monad的深入讨论,请查看我们的功能数据结构系列

执行语法的一般模式

使用do语法是了解如何实际使用monad的关键之一。 绑定运算符使您很难跟踪参数的位置。 Do语法可使结构保持整洁,并允许您轻松传递结果。 让我们看看它如何与IO工作, IO是Haskellers学习的第一个monad。 这是一个示例,我们从文件中读取第二行:

readLineFromFile :: IO String
readLineFromFile = do
handle <- openFile “myFile.txt” ReadMode
nextLine <- hGetLine handle
secondLine <- hGetLine handle
_ <- hClose handle
return secondLine
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值