美文网首页
road to haskell (1)

road to haskell (1)

作者: secwang | 来源:发表于2015-05-07 23:25 被阅读0次

  写了一段时间的代码之后,会觉得,读源码是了解一个东西最好的途径。对于 haskell 暂时没有找到特别好的,可以很直接的办法去跳到库的源码里,所以,目前最好的办法是通过  hoogle 来找到对应方法的 source.

lift 是一个 看上去特别好玩的方法,不管是 scala 还是 haskell 都是写的特别好玩的一个方法。

liftM  :: (Monad m) => (a1 -> r) -> m a1 -> m r

liftM f m1              = do { x1 <- m1; return (f x1) }

liftM2  :: (Monad m) => (a1 -> a2 -> r) -> m a1 -> m a2 -> m r

liftM2 f m1 m2          = do { x1 <- m1; x2 <- m2; return (f x1 x2) }

liftM3  :: (Monad m) => (a1 -> a2 -> a3 -> r) -> m a1 -> m a2 -> m a3 -> m r

liftM3 f m1 m2 m3      = do { x1 <- m1; x2 <- m2; x3 <- m3; return (f x1 x2 x3) }

liftM4  :: (Monad m) => (a1 -> a2 -> a3 -> a4 -> r) -> m a1 -> m a2 -> m a3 -> m a4 -> m r

liftM4 f m1 m2 m3 m4    = do { x1 <- m1; x2 <- m2; x3 <- m3; x4 <- m4; return (f x1 x2 x3 x4) }

liftM5  :: (Monad m) => (a1 -> a2 -> a3 -> a4 -> a5 -> r) -> m a1 -> m a2 -> m a3 -> m a4 -> m a5 -> m r

liftM5 f m1 m2 m3 m4 m5 = do { x1 <- m1; x2 <- m2; x3 <- m3; x4 <- m4; x5 <- m5; return (f x1 x2 x3 x4 x5) }

lift 的意思,其实没有那么复杂,只是把一个 f apply 给一个 绑定  Monad 的值,并且,返回的结果绑在 monad 的里。

liftM2 (+) [0,1] [0,2] = [0,2,1,3]

list 也是一个  monad ,蛤蛤

相关文章

  • road to haskell (1)

    写了一段时间的代码之后,会觉得,读源码是了解一个东西最好的途径。对于 haskell 暂时没有找到特别好的,可以...

  • Haskell笔记1

    前言 这个学期开始学习Haskelll(主要关于Codeworld和ghci),感觉很多东西和OOP不一样,最近感...

  • road 更多表达方式学了吗

    1. take to the road / hit the road出发,动身 After a short vis...

  • 函数式的宗教-00: 认识lisp(clojure)与haske

    总体大纲: lisp与haskell简单介绍 lisp与haskell应用领域 lisp与haskell技术分析 ...

  • haskell基础

    1, 何为函数 The behavior of functions in Haskell comes direct...

  • monad以及monad的四条定理

    haskell的范畴是hask范畴(haskell的所有类型隶属于hask范畴),所以haskell的所有函子都是...

  • 01 数据类型

    swift中结构体在haskell中的描述 枚举类型在haskell中的描述 枚举携带类型在haskell中描述 ...

  • Haskell快餐教程(1) - 初见

    Haskell快餐教程(1) - 初见 Haskell是一门由委员会发明的纯函数式语言。最早的标准制定于1990年...

  • Python Road 1

    利用博客来捋一遍Python的基础知识,看一看有没有遗漏的有趣的语法和知识,当然此博客也适用于入门小白,或许从某些...

  • Road. 1

    一路走走停停看风景,尝试配文,失败,水平不够,就先放图吧,文,慢慢来。

网友评论

      本文标题:road to haskell (1)

      本文链接:https://www.haomeiwen.com/subject/nykwfttx.html