0

나는 다음과 같은 데이터 타입을 사용하는 이진 검색 트리 만들기에 가이드를 따라했습니다 즉 재귀를 사용 '의 TreeNode'를 말하는하스켈 - 재귀를 사용하는 대수 데이터 유형?

data BinarySearchTree a = EmptyTree | TreeNode a (BinarySearchTree a) (BinarySearchTree a) deriving (Show, Read, Eq) 

오전 내가 수정을, ('자체 데이터 타입의 2 개 요소를 생성 BinarySearchTree a) (BinarySearchTree a) '?

나는 이와 같은 데이터 유형을 본 적이 없으며 간단한 설명이 좋습니다!

+1

목록 유형 (매우 재귀 적입니다.)은 한 번이 아닌 두 번 반복됩니다 (목록에서 한 꼬리 만 나타납니다) . – chi

+0

기술적으로'TreeNode' *는 두 개의'BinarySearchTree' 값 (그리고'a' 값)을 취하고 * 새로운 * BinarySearchTree 값을 반환합니다. * type *은 재귀 적으로 정의됩니다. – chepner

+0

TreeNode는 * 아무것도 만들지 않습니다. – immibis

답변

5

예, 재귀 적 데이터 유형입니다.

Learn You A Haskell For Great Good의 관련 장을 권장합니다. 매우 초보자입니다. 너무, 당신의 정확한 경우를 설명 :

가 여기에 우리가 말을하려고하는지입니다 : 트리 빈 나무 중 하나 또는 그 어떤 가치와 두 그루의 나무를 포함하는 요소 입니다. 대수 데이터 유형에 가장 적합한 처럼 들립니다.

관련 문제