:
, / , , GHC . , , , , , , , , , ..
" " Haskell , 2 3.
, IDDFS, f , p , x .
search :: (a -> [a]) -> (a -> Bool) -> a -> Bool
search f p x = any (\d -> searchTo f p d x) [1..]
where
searchTo f p d x
| d == 0 = False
| p x = True
| otherwise = any (searchTo f p $ d - 1) (f x)
"abbaaaaaacccaaaaabbaaccc" children x = [x ++ "a", x ++ "bb", x ++ "ccc"] f. ( , ). - , , ?