使用列表理解提取列表中的每个元素

用户名

如果这相对容易,我真的很陌生,对此我深表歉意

我有以下树

data Tree a =
    Branch a [Tree a]
  | Finish a
  deriving (Eq, Show)

而且我想编写一个函数foldTree ::([a]-> a)-> Tree a-> a,该函数仅用数据(a)替换树中的所有Finish节点,并使用对f的调用替换所有Branch节点这样f ::([a]-> a)

这是我的尝试

foldTree :: ([a] -> a) -> Tree a -> a
foldTree f (Finish a) = a
foldTree f (Branch a tree) =  f [foldTree f tree] 

现在在我的Branch中,f [foldTree f tree]中的树仍然是列表。如何从树中提取每个元素并将f应用于每个元素?

到处走走
foldTree f (Branch a tree) = ...

这里我们有以下几种类型:

   f :: [a] -> a
   a :: a
   tree :: [Tree a]

我们还有

   foldTree f :: Tree a -> a

我们显然需要以tree某种方式提供内容,它是唯一可以消耗Trees的函数如何?好吧,让我们Tree a简单地调用b,然后我们需要一些带有一个函数b -> a和一个[b]列表的东西,并为我们提供其他东西。也许hoogle知道这样的事吗?事实证明确实如此。

map :: (b -> a) -> [b] -> [a]

即在我们的情况下

map :: (Tree a -> a) -> [Tree a] -> [a]

所以

map (foldTree f) :: [Tree a] -> [a]

map (foldTree f) tree :: [a]

现在我们差不多完成了:您可以将此权限提供给f,但请稍候...我们还可以a也许您想先做那个。

foldTree f (Branch a tree) = f $ a : map (foldTree f) tree

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用列表理解提取列表中的每个元素

来自分类Dev

如何提取列表中的每个奇数元素

来自分类Dev

从列表中的每个列表中提取多个元素

来自分类Dev

为列表中的每个元素提取残差序列

来自分类Dev

使用列表理解更改列表中的几个元素

来自分类Dev

使用列表理解在列表中查找单个元素

来自分类Dev

提取列表的每个列表

来自分类Dev

嵌套列表中某些元素的列表理解

来自分类Dev

如果列表理解中的列表元素的条件

来自分类Dev

使用列表理解修改嵌套列表元素

来自分类Dev

使用:在列表理解中

来自分类Dev

python中列表中间元素提取列表

来自分类Dev

列表中每个元素的总和

来自分类Dev

配对列表中的每个元素

来自分类Dev

如何提取每个子列表中每个元组的第一个元素?

来自分类Dev

如何使用python列表理解更改列表列表中的第n个元素?

来自分类Dev

在读取文件后提取每个列表的每个元素,使用 Python

来自分类Dev

使用R,当字符串提取在数据框中创建列表元素时,如何为列表中的每个项目添加一行?

来自分类Dev

从列表中打印元素,直到使用列表理解找到一个元素

来自分类Dev

在Python的列表/字典理解中的每个元素中创建单独的实例

来自分类Dev

如何选择元素列表中的每个元素

来自分类Dev

使用列表中的索引从位数组中提取元素

来自分类Dev

使用Python中每个列表的最后一个元素

来自分类Dev

如何使用elem比较列表中的每个元素?

来自分类Dev

列表理解以按元素值重复列表中的元素

来自分类Dev

使用python中的列表理解扩展列表

来自分类Dev

使用列表理解从列表中删除单词

来自分类Dev

使用列表理解仅查找列表中的对

来自分类Dev

如何使用列表理解从列表内的集合中删除特定元素

Related 相关文章

  1. 1

    使用列表理解提取列表中的每个元素

  2. 2

    如何提取列表中的每个奇数元素

  3. 3

    从列表中的每个列表中提取多个元素

  4. 4

    为列表中的每个元素提取残差序列

  5. 5

    使用列表理解更改列表中的几个元素

  6. 6

    使用列表理解在列表中查找单个元素

  7. 7

    提取列表的每个列表

  8. 8

    嵌套列表中某些元素的列表理解

  9. 9

    如果列表理解中的列表元素的条件

  10. 10

    使用列表理解修改嵌套列表元素

  11. 11

    使用:在列表理解中

  12. 12

    python中列表中间元素提取列表

  13. 13

    列表中每个元素的总和

  14. 14

    配对列表中的每个元素

  15. 15

    如何提取每个子列表中每个元组的第一个元素?

  16. 16

    如何使用python列表理解更改列表列表中的第n个元素?

  17. 17

    在读取文件后提取每个列表的每个元素,使用 Python

  18. 18

    使用R,当字符串提取在数据框中创建列表元素时,如何为列表中的每个项目添加一行?

  19. 19

    从列表中打印元素,直到使用列表理解找到一个元素

  20. 20

    在Python的列表/字典理解中的每个元素中创建单独的实例

  21. 21

    如何选择元素列表中的每个元素

  22. 22

    使用列表中的索引从位数组中提取元素

  23. 23

    使用Python中每个列表的最后一个元素

  24. 24

    如何使用elem比较列表中的每个元素?

  25. 25

    列表理解以按元素值重复列表中的元素

  26. 26

    使用python中的列表理解扩展列表

  27. 27

    使用列表理解从列表中删除单词

  28. 28

    使用列表理解仅查找列表中的对

  29. 29

    如何使用列表理解从列表内的集合中删除特定元素

热门标签

归档