[학습 총화 - Haskell - 3] Haskell 상용 데이터 구조
Table of Contents
1 하 스 켈 기본 지식
2 Haskell 중요 데이터 구조 - list
3 Haskell 상용 데이터 구조
3.1 Tuple 이 뭐 예요?
Tuple 은 이원 그룹, 삼원 그룹 등 입 니 다. 그룹 내 요 소 는 서로 다른 유형 이 될 수 있 고 List 요 소 는 같은 유형 이 어야 합 니 다.
ghci>(1,2)
(1,2)
ghci>('h','i','j')
('h','i','j')
ghci>(1,'a',3.5)
(1,'a',3.5)
다음 예 는 Tuple 내 요소 의 유형 이 Tuple 의 유형 을 결정 한 다 는 것 을 설명 한다. 즉, (1, 2) 와 (a, b) 는 모두 이원 그룹 이지 만 같은 유형 (1, 2) 과 (1, 2, 3) 은 요소 의 유형 이 같 지만 수량 이 다 르 고 같은 유형 도 아니다.
ghci>[(1,2),(3,4),(5,6)]
[(1,2),(3,4),(5,6)]
ghci>[(1,2),('a','b')]
error
ghci>[(1,2),(3,4,5)]
error
3.2 Pair
3.2.1 Pair 가 뭐 예요?
Pair 는 이원 조 입 니 다.
ghci>(1,2)
(1,2)
ghci>(3,4)
(3,4)
3.2.2 Pair 와 관련 된 함수
ghci>fst (2,3)
2
ghci>snd (2,3)
3
ghci>zip [1,2,3] ['a','b','c']
[(1,'a'),(2,'b'),(3,'c')]
ghci>zip [1..] ["Apple","Moto","Nokia"]
[(1,"Apple"),(2,"Moto"),(3,"Nokia")]
3.3 Tuple 로 프로그램 작성 하기
예 1 구속 성 프로 그래 밍, 세 변 이 [1, 10] 안에 있 는 모든 직각 삼각형 을 찾 아 라.
ghci>[(a,b,c) | a <- [1..10], b <- [1..a], c <- [1..b], b^2 + c^2 == a^2]
[(5,4,3),(10,8,6)]
예 2 Tuple 과 패턴 일치
first (x,_,_) = x
second (_,y,_) = y
third (_,_,z) = z
ghci>first ('a',3,6.7)
'a'
ghci>second ('a',3,6.7)
3
ghci>third ('a',3,6.7)
6.7
예 3
sumPair xs = [x + y| (x,y) <- xs ]
ghci>sumPair [(1,2),(3,4),(5,6)]
[3,7,11]
sumPair' xs = [z | (x,y) <- xs, let z = x + y]
주의: z = x + y 로 직접 쓸 수 없습니다.
ghci>sumPair' [(1,2),(3,4),(5,6)]
[3,7,11]
예 4
zip' _ [] = []
zip' [] _ = []
zip' (x:xs) (y:ys) = (x,y):zip' xs ys
ghci>zip' [1..] ["Apple","***","MI"]
[(1,"Apple"),(2,"***"),(3,"MI")]
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.