在 Haskell 中创建模式匹配时,是否进行以下模式匹配:
function [_] = []
意思相同:
function (x:xs) = []
如果不是,[_]
模式是什么意思?
最佳答案
[_]
匹配具有一个 元素的列表; x:xs
匹配任何非空列表,副作用是将头部绑定(bind)到 x
并将尾部绑定(bind)到 xs
。
[_]
等同于 (_:[])
。
给定
f x = case x of
[_] -> "singleton"
[] -> "empty"
otherwise -> "nonempty"
然后
> print $ map f [[], [1], [1,2]]
["empty","singleton","nonempty"]
关于haskell - Haskell 中 `[_]` 模式的含义是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73037063/