Haskell在线运行

版本:

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

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

模块



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

点击购买 固件广场

模块

Haskell是一种函数式语言,所有内容都表示为表达式,因此可以将模块称为一组相似或相关类型的函数.

您可以将函数从一个模块导入另一个模块.在开始定义其他函数之前,应首先使用所有"import"语句.在本章中,我们将学习Haskell模块的不同功能.


列表模块

列表提供了一些很棒的功能使用列表类型数据.导入List模块后,您可以使用各种各样的函数.

在下面的示例中,我们使用了List模块下可用的一些重要函数.

import Data.List  

main = do  
   putStrLn("Different methods of List Module") 
   print(intersperse '.' "Tutorialspoint.com") 
   print(intercalate " " ["Lets","Start","with","Haskell"]) 
   print(splitAt 7 "HaskellTutorial") 
   print (sort [8,5,3,2,1,6,4,2])

在这里,我们有许多功能,甚至没有定义它们.这是因为这些功能在List模块中可用.导入List模块后,Haskell编译器在全局命名空间中提供了所有这些功能.因此,我们可以使用这些函数.

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

Different methods of List Module
"T.u.t.o.r.i.a.l.s.p.o.i.n.t...c.o.m"
"Lets Start with Haskell"
("Haskell","Tutorial")
[1,2,2,3,4,5,6,8]

Char模块

Char 模块大量预定义函数可以使用Character类型.看一下下面的代码块 :

import Data.Char 

main = do  
   putStrLn("Different methods of Char Module") 
   print(toUpper 'a') 
   print(words "Let us study tonight") 
   print(toLower 'A')
这里,函数 toUpper 和 toLower 已在 Char 模块.它将产生以下输出 :

Different methods of Char Module
'A'
["Let","us","study","tonight"]
'a'

地图模块

地图是未排序的增值对类型数据类型.它是一个广泛使用的模块,具有许多有用的功能.以下示例显示了如何使用Map模块中可用的预定义函数.

import Data.Map (Map) 
import qualified Data.Map as Map  --required for GHCI  

myMap :: Integer -> Map Integer [Integer] 
myMap n = Map.fromList (map makePair [1..n]) 
   where makePair x = (x, [x])  

main = print(myMap 3)

它将产生以下输出 :

fromList [(1,[1]),(2,[2]),(3,[3])]

设置模块

Set模块有一些非常有用的预定义函数来操作数学数据.集合实现为二叉树,因此集合中的所有元素必须是唯一的.

查看以下示例代码

import qualified Data.Set as Set   

text1 = "Hey buddy"   
text2 = "This tutorial is for Haskell"   

main = do  
   let set1 = Set.fromList text1   
       set2 = Set.fromList text2 
   print(set1) 
   print(set2)

这里,我们将String修改为Set.它将产生以下输出.观察输出集没有重复的字符.

 fromList"Hbdeuy"
 fromList"HTaefhiklorstu"
`

自定义模块

让我们看看如何创建可在其他程序中调用的自定义模块.要实现此自定义模块,我们将创建一个名为"custom.hs"的单独文件以及我们的"main.hs".

让我们创建自定义模块并在其中定义一些函数.

custom.hs
module Custom ( 
   showEven, 
   showBoolean 
) where 

showEven:: Int-> Bool 
showEven x = do 

if x 'rem' 2 == 0 
   then True 
else False 
showBoolean :: Bool->Int 
showBoolean c = do 

if c == True 
   then 1 
else 0

我们的定制模块准备就绪.现在,让我们将其导入程序.

main.hs
import Custom 

main = do 
   print(showEven 4) 
   print(showBoolean True)

我们的代码将生成以下内容输出 : 去;


 True 
 1

showEven 函数返回 True ,因为"4"是偶数. showBoolean 函数返回"1",因为我们传递给函数的布尔函数是"True".

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