haskell - Haskell 中 `[_]` 模式的含义是什么?

标签 haskell pattern-matching

在 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/

相关文章:

Windows 控制台似乎不喜欢 Unicode

Haskell中的随机数列表

haskell - 这个发电机组发电功能是如何工作的

scala - 如何在 Scala 中对某个范围进行模式匹配?

function - Haskell 错误 - 无法匹配预期类型

haskell - 镜头变焦模糊变量

java - 给定字符串中的混合重音字符和普通字符在搜索时在 Java 中不起作用

f# - 编译时约束,用于完全模式匹配

c# - RegEx替换C#中字符串中的特定字母

sql - PostgreSQL LIKE 查询性能变化