Haskell在线运行

版本:

所属目录
点击了解高性能代码运行API
运行结果
教程手册
代码仓库
极速运行
终端运行
图形+终端

                        
以下是用户最新保存的代码
小黑盒题目 发布于:2023-05-24 11:57 这是一个小程序 发布于:2021-10-12 22:01 haskell 测试 发布于:2021-09-23 22:38 [更多]
显示目录

高阶函数



学习嵌入式的绝佳套件,esp8266开源小电视成品,比自己去买开发板+屏幕还要便宜,省去了焊接不当搞坏的风险。 蜂鸣版+触控升级仅36元,更强的硬件、价格全网最低。

点击购买 固件广场

高阶函数

在本章中,我们将学习一些可以在Haskell中轻松使用的基本函数,而无需导入任何特殊的Type类.大多数这些函数都是其他高阶函数的一部分.

头函数

头函数在List上有效.它返回输入参数的第一个,它基本上是一个列表.在下面的示例中,我们传递一个包含10个值的列表,我们使用 head 函数生成该列表的第一个元素.

main = do 
   let x = [1..10]   
   putStrLn "Our list is:"  
   print (x) 
   putStrLn "The first element of the list is:" 
   print (head x)

它将产生以下输出 :

Our list is: 
[1,2,3,4,5,6,7,8,9,10]
The first element of the list is:
1

尾部函数

Tail 是补充 head 功能的功能.它需要一个列表作为输入,并产生没有头部的整个列表.这意味着, tail 函数返回没有第一个元素的整个列表.请看下面的示例 :

main = do 
   let x = [1..10]   
   putStrLn "Our list is:"  
   print (x) 
   putStrLn "The tail of our list is:" 
   print (tail x)

它将产生以下输出 :

Our list is:
[1,2,3,4,5,6,7,8,9,10]
The tail of our list is:
[2,3,4,5,6,7,8,9,10]

最后一个函数

顾名思义,它产生的最后一个元素作为输入提供的列表.请查看以下示例.

main = do 
   let x = [1..10]   
   putStrLn "Our list is:"  
   print (x) 
   putStrLn "The last element of our list is:" 
   print (last x)

它将产生以下输出 :

Our list is:
[1,2,3,4,5,6,7,8,9,10]
The last element of our list is:
10

初始化函数

初始化与尾部函数完全相反.它将列表作为参数并返回整个列表,而不返回最后一个条目.

main = do 
   let x = [1..10]   
   putStrLn "Our list is:"  
   print (x) 
   putStrLn "Our list without the last entry:"  
   print (init x)

现在,观察其输出 :

Our list is:
[1,2,3,4,5,6,7,8,9,10]
Our list without the last entry:
[1,2,3,4,5,6,7,8,9]

空函数

空是一个布尔检查函数,它对String有效,只有当给定列表为空时才返回 True ,否则返回 False .以下代码检查提供的列表是否为空.

 main = do 
让x = [1..10] 
 putStrLn"我们的列表是:"
 print(x)
 putStrLn"我们的列表是空的吗?" 
 print(null x)

它将产生以下输出 :

main = do 
   let x = [1..10]   
   putStrLn "Our list is:"  
   print (x) 
   putStrLn "Is our list empty?"  
   print (null x)

反向函数

它适用于String输入并将整个输入转换为相反的顺序并给出一个输出结果.以下是此功能的代码库.

main = do 
   let x = [1..10]  
   putStrLn "Our list is:" 
   print (x) 
   putStrLn "The list in Reverse Order is:" 
   print (reverse x)

它将产生以下输出 :

Our list is:
[1,2,3,4,5,6,7,8,9,10]
The list in Reverse Order is:
[10,9,8,7,6,5,4,3,2,1]

长度函数

此函数用于计算长度 list 作为参数给出.请看下面的示例 :

main = do 
   let x = [1..10]   
   putStrLn "Our list is:" 
   print (x) 
   putStrLn "The length of this list is:" 
   print (length x)

我们的列表中有10个元素,因此我们的代码将输出10作为输出.

Our list is:
[1,2,3,4,5,6,7,8,9,10]
The length of this list is:
10

Take Function

Take 函数用于从另一个字符串创建子字符串.以下代码显示了如何在Haskell中使用take函数 :

main = print(take 5 ([1 .. 10]))

代码生成一个子字符串,其中包含来自提供的列表中的5个元素 :

 [1,2,3,4,5]

Drop Function

此函数还用于生成子字符串.它的作用与 take 功能相反.请查看以下代码 :

main = print(drop 5 ([1 .. 10]))

代码从提供的列表中删除前5个元素并打印剩余的5个元素.它将产生以下输出 :

  [6,7,8,9,10]

最大函数

此函数用于查找提供列表中具有最大值的元素.让我们看看如何在实践中使用它 :

main = do 
   let x = [1,45,565,1245,02,2]   
   putStrLn "The maximum value element of the list is:"  
   print (maximum x)

上面的代码将生成以下输出 :

The maximum value element of the list is:
1245

最小函数

此函数用于查找提供列表中具有最小值的元素.它与最大函数正好相反.

main = do 
   let x = [1,45,565,1245,02,2]   
   putStrLn "The minimum value element of the list is:"  
   print (minimum x)

上述代码的输出为 :

The maximum value element of the list is:
1245

Sum函数

顾名思义,此函数返回所有元素的总和在提供的列表中.以下代码获取5个元素的列表,并将它们的总和作为输出返回.

main = do 
   let x = [1..5] 
   putStrLn "Our list is:" 
   print (x) 
   putStrLn "The summation of the list elements is:" 
   print (sum x)

它将产生以下输出 :

Our list is:
[1,2,3,4,5]
The summation of the list elements is:
15

产品功能

您可以使用此功能乘以列表中的所有元素并打印其值.

main = do 
   let x = [1..5] 
   putStrLn "Our list is:" 
   print (x) 
   putStrLn "The multiplication of the list elements is:" 
   print (product x)

我们的代码将产生以下输出 :

Our list is:
[1,2,3,4,5]
The multiplication of the list elements is: 
120

Elem函数

此函数用于检查提供的列表是否包含特定元素.因此,它返回 true 或 false .

以下代码检查提供的元素列表是否包含值786 .

main = do 
   let x = [1,45,155,1785] 
   putStrLn "Our list is:" 
   print (x) 
   putStrLn "Does it contain 786?" 
   print (elem 786 (x))

它将产生以下输出 :

Our list is:
[1,45,155,1785]
Does it contain 786?
False

使用相同的代码检查提供的列表是否包含值1785.

由JSRUN为你提供的Haskell在线运行、在线编译工具
        JSRUN提供的Haskell 在线运行,Haskell 在线运行工具,基于linux操作系统环境提供线上编译和线上运行,具有运行快速,运行结果与常用开发、生产环境保持一致的特点。
yout