Eri*_*ikR 10 haskell pattern-matching
这种形式的模式匹配称为:Option{..} <- ...例如,因为它在这里使用:
data Option = Option { cabal :: Maybe String , noStylish :: Bool }
...
main = do
Option{..} <- cmdArgs defOption
cabp <- case cabal of
Nothing -> do
...
Run Code Online (Sandbox Code Playgroud)
它似乎重新定义cabal和nostylish.在模式匹配之前cabal有类型Option -> Maybe String但在类型之后Maybe String.
此示例来自最近上传的包cabal2ghci.
rkh*_*rov 18
这是一个名为记录通配符的GHC语法扩展.引用文件:
记录通配符语法允许
".."记录模式,其中每个省略的字段f由模式替换f = f.
所以这段代码相当于
Option { cabal = cabal, noStylish = noStylish } <- cmdArgs defOption
Run Code Online (Sandbox Code Playgroud)
有效地将名称绑定x到x为记录类型中的每个字段命名的记录字段的值.
<- 部分在这里无关紧要,你也可以写
let Option { .. } = some expression
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
426 次 |
| 最近记录: |