deniok: (Default)
deniok ([personal profile] deniok) wrote2011-12-21 02:55 pm

Про деревья

Имеется тип
data Tree a = Nil | Branch (Tree a) a (Tree a)
Написать функцию
elemTree :: Eq a => a -> Tree a -> Bool
проверяющую наличие значения в дереве.

Первая приходящая в голову реализация не проходит следующий тест:

> let testTree n =  Branch (testTree n) n (testTree (n+1))
> 3 `elemTree` (testTree 1)
True


Код теста специально сливается с фоном, попробуйте сначала догадаться самостоятельно, в чём тут подвох.

Post a comment in response:

This account has disabled anonymous posting.
If you don't have an account you can create one now.
No Subject Icon Selected
More info about formatting