我在真实世界的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
?我已经->
在函数类型签名中看到过,但是在这段代码中这是做什么的。
这->
是大小写语法的一部分,用于将模式与表达式连接在一起。
do { ... }
只是一种表达而已。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句