Dec. 21st, 2011

deniok: (Default)
Имеется тип
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


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

Profile

deniok: (Default)
deniok

February 2022

S M T W T F S
  12345
6789101112
13141516171819
20212223 242526
2728     

Page Summary

Style Credit

Expand Cut Tags

No cut tags
Page generated Jun. 21st, 2025 02:26 am
Powered by Dreamwidth Studios