2

Real World Haskell book で次の関数に遭遇しました。

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? 私は関数型の署名を見てき->ましたが、これはこのコードで何をしますか。

4

1 に答える 1

3

->、パターンを代替の式に接続する case 構文の一部です。

do { ... }は単なる表現です。

于 2013-11-14T17:55:14.477 に答える