Livejournal
Log in
Post
Friends
My journal
lomeo
Поиск в ширину
Dec 21, 2011 18:46
Клёвая реализация сабжа от
antilamer
:
data Tree a = Nil | Branch (Tree a) a (Tree a)
bfs t = [x | Branch _ x _ <- b]
where
b = t:[x | Branch l _ r <- b, x <- [l,r]]
Ленивость, все дела.
отсюда
.
haskell
,
lazy evaluation
,
fp
,
программирование
Leave a comment
Comments 13
lionet
December 21 2011, 16:36:09 UTC
Ошибка, там t а не b в конце.
Reply
lomeo
December 21 2011, 17:11:34 UTC
Не понял твоего замечания. Если самую последнюю b заменить на t, то где рекурсия, т.е. собственно обход дерева?
Но там ошибка есть, да. Этот bfs не завершается :-( А если поправить, то уже не будет так красиво.
Reply
gliv
December 21 2011, 19:22:48 UTC
О, замечательно! :)
Клевая реализация ... Там ошибка есть ... Если поправить, то уже не будет так красиво
Напомнило "могу печатать 1200 символов в минуту, но такая фигня получается" ;)
Reply
lomeo
December 21 2011, 20:04:20 UTC
Я ошибку поздно заметил :-)
Reply
Thread 13
Leave a comment
Up
Comments 13
Reply
Но там ошибка есть, да. Этот bfs не завершается :-( А если поправить, то уже не будет так красиво.
Reply
Клевая реализация ... Там ошибка есть ... Если поправить, то уже не будет так красиво
Напомнило "могу печатать 1200 символов в минуту, но такая фигня получается" ;)
Reply
Reply
Leave a comment