3

这是对在函数 Haskell 中定义变量中提出的问题的重新框架

我有一个函数,其开头如下所示:

recursiveLs :: FilePath -> IO [FilePath]
recursiveLs dir =
   do
       folderExists <- doesDirectoryExist dir
       if folderExists
          then ...

问题是,如何folderExists在操作中分配给它之前明确声明类型?

4

1 回答 1

7

好吧,让我们尝试做你想做的事情ghci

> (a :: Integer) <- return 10

<interactive>:2:7:
    Illegal type signature: `Integer'
      Perhaps you intended to use -XScopedTypeVariables
    In a pattern type-signature

因此,我们应该启用该编译指示。

> :set -XScopedTypeVariables

然后再试一次

> (a :: Integer) <- return 10
a :: Integer

现在我们a等于10,即Integer

> a
10
it :: Integer

另外,我相信你已经忘记了=你的recursiveLs功能,应该有类似的东西recursiveLs dir = do ...

于 2013-05-14T17:24:19.083 回答