Skip to content

Commit

Permalink
Merge pull request #143 from vinx13/patch-1
Browse files Browse the repository at this point in the history
Fix typo in ch 9
  • Loading branch information
huangzworks committed Aug 4, 2017
2 parents 614d58f + 544a8c3 commit f67b07d
Showing 1 changed file with 5 additions and 5 deletions.
10 changes: 5 additions & 5 deletions chp/9.rst
Original file line number Diff line number Diff line change
Expand Up @@ -480,7 +480,7 @@ Forec 译注:此处 ``liftP`` 的参数可能较容易弄混,这里我们令

在这里,将 ``q`` 作为 ``liftP`` 的第一个参数是经过深思熟虑的,这使得我们可能写一个对 ``greaterP`` 和 ``lesserP`` 都有意义的定义,实践中发现,相较其他语言,Haskell 中参数的最佳适配成为api设计中最重要的一部分。语言内部要求参数转换,在Haskell中放错一个参数的位置就将失去程序的所有意义。

我们可以通过组合字(combinators)恢复一些意义,比如,直到2007年 ``forM`` 才加入 ``Control.Monad`` 模块,在此之前,人们用的是 ``flip mapM`` 。
我们可以通过组合子(combinators)恢复一些意义,比如,直到2007年 ``forM`` 才加入 ``Control.Monad`` 模块,在此之前,人们用的是 ``flip mapM`` 。

::

Expand Down Expand Up @@ -537,7 +537,7 @@ Forec 译注:此处 ``liftP`` 的参数可能较容易弄混,这里我们令
takeExtension path == ".cpp" && size > 131072
myTest _ _ _ _ = False

在加入组合字以后这个函数会变成什么样子
在加入组合子以后这个函数会变成什么样子

::

Expand All @@ -548,7 +548,7 @@ Forec 译注:此处 ``liftP`` 的参数可能较容易弄混,这里我们令
myTest2 = (liftPath takeExtension `equalP` ".cpp") `andP`
(sizeP `greaterP` 131072)

由于操作文件名是如此平常的行为,我们加入了最终组合字 ``liftPath`` 。
由于操作文件名是如此平常的行为,我们加入了最终组合子 ``liftPath`` 。

定义并使用新算符
---------------------------------
Expand Down Expand Up @@ -670,7 +670,7 @@ Forec 译注:此处 ``liftP`` 的参数可能较容易弄混,这里我们令
modified <- maybeIO (getModificationTime path)
return (Info path perms size modified)

在此唯一值得记录的事情是一个有用的组合字, ``maybeIO`` ,将一个可能抛出异常的 IO 操作转换成用 ``Maybe`` 包装的结果
在此唯一值得记录的事情是一个有用的组合子, ``maybeIO`` ,将一个可能抛出异常的 IO 操作转换成用 ``Maybe`` 包装的结果

[
Forec 译注:在 GHC 7.6 以后的版本中,以上代码编译会出现问题,需添加 ``import`` 列表,并对部分代码做修改如下:
Expand Down Expand Up @@ -713,7 +713,7 @@ Forec 译注:在 GHC 7.6 以后的版本中,以上代码编译会出现问

2. 使用 ``id`` 作为控制函数, ``traverse id`` 会前序遍历一棵树,即返回值中父目录出现在子目录之前。写一个控制函数让 ``traverse`` 完成后序遍历,即在子目录之后返回父目录。

3. 使得《谓词组合》一节里面的谓词和组合字可以处理新的 ``info`` 类型。
3. 使得《谓词组合》一节里面的谓词和组合子可以处理新的 ``info`` 类型。

4. 给 ``traverse`` 写一个包装器,可以让你通过一个谓词控制遍历,通过另一个谓词来过滤返回结果

Expand Down

0 comments on commit f67b07d

Please sign in to comment.