(某事 - > do)的含义

时间:2013-11-14 17:53:11

标签: haskell

我在Real World Haskell书上遇到了以下功能:

namesMatching pat
  | not (isPattern pat) = do
    exists <- doesNameExist pat
    return (if exists then [pat] else [])
  | otherwise = do
    case splitFileName pat of
      ("", baseName) -> do
          curDir <- getCurrentDirectory
          listMatches curDir baseName
      (dirName, baseName) -> do
          -- do something
          return (concat pathNames)

以下行是什么意思:("", baseName) -> do?我在函数类型签名中看到->,但这在此代码中做了什么。

1 个答案:

答案 0 :(得分:3)

->是案例语法的一部分,它将模式与替代中的表达式连接起来。

do { ... }只是一个表达。