ch
- это Char
. [ch]
является String
. Вы, вероятно, хотите [[ch]]
, который представляет собой список строк ([String]
).
Более подробно, [[ch]]
- это список, содержащий ровно одну строку, эта строка является [ch]
, которая состоит из одиночный символ ch
.
genWords :: BTree -> [String]
genWords Empty = []
genWords (Node ch Empty Empty) = [[ch]]
genWords (Node ch left right) = map (ch:) (genWords left ++ genWords right)
Если вам нужны суффиксы, попробуйте вместо этого
genWords :: BTree -> [String]
genWords Empty = []
genWords (Node ch Empty Empty) = [[ch]]
genWords (Node ch left right) = map (ch:) subPaths ++ subPaths
where subPaths = genWords left ++ genWords right