如果您使用过Java,那么您将知道如何将所有类绑定到名为 package包的文件夹中,同样,Haskell可被视为模块的集合。
Haskell是一种函数语言,所有内容都表示为一种表达式,因此,模块可以称为相似或相关类型的函数的集合。
您可以将函数从一个模块导入另一个模块。在本章中,我们将学习Haskell模块的不同函数。
列表提供了一些很棒的函数来处理 list 类型数据。import "List"模块后,便可以使用多种函数。
在下面的示例中,我们使用了List模块下的一些重要函数。
import Data.List main=do putStrLn("Different methods of List Module") print(intersperse '.' "Learnfk.com") print(intercalate " " ["Lets","Start","with","Haskell"]) print(splitAt 7 "HaskellTutorial") print (sort [8,5,3,2,1,6,4,2])
导入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 模块具有很多预定义的函数,可用于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是未排序的增值对类型数据类型。它是具有许多有用函数的广泛使用的模块。以下示例显示了如何使用"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"。
祝学习愉快!(内容编辑有误?请选中要编辑内容 -> 右键 -> 修改 -> 提交!)