这个let表达式发生了什么?

时间:2016-07-17 20:46:37

标签: haskell syntax let

我正在阅读这篇blog post关于用Scotty在Haskell中编写API的内容,我看到了关于monad变换器的部分。我理解monad变换器的概念,但我无法理解这里发生的事情:

let r m = runReaderT (runConfigM m) c

m在使用它的同一个m表达式中声明时,表达式如何引用let?这里发生了什么?什么是m

1 个答案:

答案 0 :(得分:6)

这是一个名为r的(本地)函数声明。 m是函数的参数。它相当于:

let r = \m -> runReaderT (runConfigM m) c