Я следовал руководству по созданию двоичного дерева поиска, которое использует следующий тип данных:
data BinarySearchTree a = EmptyTree | TreeNode a (BinarySearchTree a) (BinarySearchTree a) deriving (Show, Read, Eq)
Правильно ли я говорю, что «TreeNode» использует рекурсию, т.е. создает 2 элемента своего собственного типа данных «(BinarySearchTree a) (BinarySearchTree a)»?
Я никогда не видел такого типа данных, любое краткое объяснение было бы здорово!
TreeNode
принимает два значенияBinarySearchTree
(и одно значениеa
) и возвращает новое значениеBinarySearchTree
. Тип определяется рекурсивно. - person chepner   schedule 22.09.2016