Haskell - 有关函数的更多信息
到目前为止,我们已经讨论了多种类型的 Haskell 函数,并使用不同的方式来调用这些函数。在本章中,我们将学习一些可以在 Haskell 中轻松使用的基本函数,而无需导入任何特殊的 Type 类。这些函数中的大多数是其他高阶函数的一部分。
头部功能
Head函数作用于列表。它返回输入参数的第一个,它基本上是一个列表。在下面的示例中,我们传递一个包含 10 个值的列表,并使用head函数生成该列表的第一个元素。
主要=做 让 x = [1..10] putStrLn "我们的列表是:" 打印(x) putStrLn "列表的第一个元素是:" 打印(头x)
它将产生以下输出 -
我们的清单是: [1,2,3,4,5,6,7,8,9,10] 列表的第一个元素是: 1
尾部功能
Tail是对head功能的补充。它接受一个列表作为输入,并生成没有头部的整个列表。这意味着,tail函数返回整个列表,不含第一个元素。看一下下面的例子 -
主要=做 让 x = [1..10] putStrLn "我们的列表是:" 打印(x) putStrLn "我们列表的尾部是:" 打印(尾部x)
它将产生以下输出 -
我们的清单是: [1,2,3,4,5,6,7,8,9,10] 我们列表的末尾是: [2,3,4,5,6,7,8,9,10]
最后一个功能
顾名思义,它生成作为输入提供的列表的最后一个元素。检查以下示例。
主要=做 让 x = [1..10] putStrLn "我们的列表是:" 打印(x) putStrLn“我们列表的最后一个元素是:” 打印(最后一个x)
它将产生以下输出 -
我们的清单是: [1,2,3,4,5,6,7,8,9,10] 我们列表的最后一个元素是: 10
初始化函数
Init 的工作原理与tail函数完全相反。它接受一个列表作为参数,并返回整个列表,不包含最后一个条目。
主要=做 让 x = [1..10] putStrLn "我们的列表是:" 打印(x) putStrLn "我们的列表没有最后一个条目:" 打印(初始化x)
现在,观察它的输出 -
我们的清单是: [1,2,3,4,5,6,7,8,9,10] 我们的列表没有最后一个条目: [1,2,3,4,5,6,7,8,9]
空函数
Null是一个布尔检查函数,适用于 String 并仅当给定列表为空时返回True,否则返回False。以下代码检查提供的列表是否为空。
主要=做 让 x = [1..10] putStrLn "我们的列表是:" 打印(x) putStrLn“我们的列表是空的吗?” 打印(空x)
它将产生以下输出 -
我们的清单是: [1,2,3,4,5,6,7,8,9,10] 我们的列表是空的吗? 错误的
反转功能
它作用于字符串输入,并将整个输入转换为相反的顺序,并给出一个输出作为结果。以下是该函数的代码库。
主要=做 让 x = [1..10] putStrLn "我们的列表是:" 打印(x) putStrLn "倒序排列的列表是:" 打印(反转x)
它将产生以下输出 -
我们的清单是: [1,2,3,4,5,6,7,8,9,10] 倒序排列的列表是: [10,9,8,7,6,5,4,3,2,1]
长度函数
该函数用于计算作为参数给出的列表的长度。看一下下面的例子 -
主要=做 让 x = [1..10] putStrLn "我们的列表是:" 打印(x) putStrLn "此列表的长度是:" 打印(长度x)
我们的列表中有 10 个元素,因此我们的代码将产生 10 作为输出。
我们的清单是: [1,2,3,4,5,6,7,8,9,10] 该列表的长度为: 10
采取功能
Take函数用于从另一个字符串创建子字符串。以下代码展示了如何在 Haskell 中使用 take 函数 -
main = print(取 5 ([1 .. 10]))
该代码生成一个子字符串,其中包含所提供列表中的 5 个元素 -
[1,2,3,4,5]
下降功能
该函数还用于生成子字符串。它的功能与take功能相反。看下面的代码 -
主要 = 打印(滴 5 ([1 .. 10]))
该代码从提供的列表中删除前 5 个元素并打印其余 5 个元素。它将产生以下输出 -
[6,7,8,9,10]
最大功能
该函数用于从提供的列表中查找具有最大值的元素。让我们看看如何在实践中使用它 -
主要=做 让 x = [1,45,565,1245,02,2] putStrLn "列表的最大值元素是:" 打印(最大x)
上面的代码将生成以下输出 -
列表的最大值元素为: 1245
最小函数
该函数用于从提供的列表中查找具有最小值的元素。它正好与极大值函数相反。
主要=做 让 x = [1,45,565,1245,02,2] putStrLn "列表的最小值元素是:" 打印(最小x)
上述代码的输出是 -
列表的最小值元素为: 1
求和函数
顾名思义,该函数返回所提供列表中所有元素的总和。以下代码采用 5 个元素的列表,并返回它们的总和作为输出。
主要=做 让 x = [1..5] putStrLn "我们的列表是:" 打印(x) putStrLn "列表元素的总和是:" 打印(总和x)
它将产生以下输出 -
我们的清单是: [1,2,3,4,5] 列表元素的总和为: 15
产品功能
您可以使用此函数将列表中的所有元素相乘并打印其值。
主要=做 让 x = [1..5] putStrLn "我们的列表是:" 打印(x) putStrLn "列表元素的乘法是:" 打印(产品x)
我们的代码将产生以下输出 -
我们的清单是: [1,2,3,4,5] 列表元素的乘法为: 120
元素函数
此函数用于检查提供的列表是否包含特定元素。因此,它返回true或false。
以下代码检查提供的元素列表是否包含值 786。
主要=做 让 x = [1,45,155,1785] putStrLn "我们的列表是:" 打印(x) putStrLn "它包含 786 吗?" 打印(元素786(x))
它将产生以下输出 -
我们的清单是: [1,45,155,1785] 里面有786吗? 错误的
使用相同的代码检查提供的列表是否包含值 1785。