Haskell-모듈

Java에서 작업했다면 모든 클래스가 다음 폴더에 바인딩되는 방법을 알 수 있습니다. package. 마찬가지로 Haskell은modules.

Haskell은 기능적 언어이며 모든 것이 표현식으로 표시되므로 모듈은 유사하거나 관련된 유형의 함수 모음으로 호출 될 수 있습니다.

당신은 할 수 있습니다 import한 모듈에서 다른 모듈로 함수. 다른 함수 정의를 시작하기 전에 모든 "import"문이 먼저 와야합니다. 이 장에서 우리는 Haskell 모듈의 다양한 기능을 배울 것입니다.

목록 모듈

List 작업 할 수있는 멋진 기능을 제공합니다. 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 모듈을 가져온 후 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모듈에는 문자 유형과 함께 작동하는 사전 정의 된 기능이 많이 있습니다. 다음 코드 블록을 살펴보십시오-

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)

여기서는 문자열을 집합으로 수정합니다. 다음 출력이 생성됩니다. 출력 세트에 문자가 반복되지 않는지 확인하십시오.

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

Custom 모듈이 준비되었습니다. 이제 프로그램으로 가져 오겠습니다.

main.hs

import Custom 

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

우리 코드는 다음과 같은 출력을 생성합니다.

True
1

그만큼 showEven 함수 반환 True, "4"는 짝수이므로 그만큼showBoolean 함수에 전달 된 부울 함수가 "True"이므로 함수는 "1"을 반환합니다.