繁体   English   中英

Haskell-使用函数创建列表

[英]Haskell - Creating a list by using functions

我想按照标题中的说明进行操作,但是这会使我显示错误。 我把我的代码放在下面。

data Tree a = Leaf a | Branch (Tree a) (Tree a) deriving Show

treeToList :: Tree a -> [a]
treeToList (Leaf x) = [x]
treeToList (Branch a b) = (treeToList a):(treeToList b)

它会显示如下内容:

treeToList分支(分支(叶子2)(叶子3))(叶子4)

[2,3,4]

在第一个模式匹配中,您将获得类型列表的值。 现在,您所要做的就是在与Branch构造函数进行模式匹配时将它们串联起来。

treeToList :: Tree a -> [a]
treeToList (Leaf x) = [x]
treeToList (Branch a b) = (treeToList a) ++ (treeToList b)

ghci中的演示:

*Main> treeToList (Branch (Branch (Leaf 2) (Leaf 3)) (Leaf 4))
[2,3,4]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM