我们自己的数据类型的最大值

Sameer萨克森纳

假设我在haskell中将自己的数据类型设为:

data List a = ListNode a (List a) | ListEnd

我如何实现一个自定义的最大值函数,例如,该函数查找列表的最大值:

 mymaximum (ListNode 10 ListEnd)

应该返回10

mymaximum (ListNode 20 (ListNode 10 ListEnd)) 

将返回20

散布

可以定义一个递归函数:

myMaximum :: Ord a => List a -> a
myMaximum (ListNode a ListEnd) = a
myMaximum (ListNode a b) = max a (myMaximum b)

但是,更干净的解决方案将重用Haskell的现有maximum功能,而不是定义自己的功能:

maximum :: forall a . (Foldable t, Ord a) => t a -> a

为此,您需要为定义一个Foldable实例(或,如其他评论者所指出的,派生)List,例如:

instance Foldable List where
  foldMap f ListEnd              = undefined
  foldMap f (ListNode x ListEnd) = undefined
  foldMap f (ListNode x r      ) = undefined

......这,一旦完成,将允许您拨打maximumListS:

λ> maximum (ListNode 20 (ListNode 10 ListEnd))
20

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Java-当我们在自己的类中创建类型为class的数据类型时会发生什么?

来自分类Dev

检测我们拥有的数据类型

来自分类Dev

我们可以在模拟器中为用户定义的数据类型强制值吗?

来自分类Dev

如何知道我们是否达到了fs.file-max的最大值

来自分类Dev

如果我们不提供参数,PHP rand() 函数的最大值是多少?

来自分类Dev

我们如何使用 Pandas 来生成最小值、最大值、平均值、中值……作为数据框的新列?

来自分类Dev

如何从double数据类型值集中获取最大值?

来自分类Dev

C中数据类型的大小、最小值和最大值

来自分类Dev

我们可以在Sybase中创建TABLE数据类型吗?

来自分类Dev

我们可以在Java的String数据类型中存储多少个字符?

来自分类Dev

为什么我们不在JavaScript中使用数据类型作为函数参数?

来自分类Dev

我们可以向集合数据类型添加主键吗?

来自分类Dev

我们无法从ObjectiveC代码进行通讯/调用的哪种快速数据类型?

来自分类Dev

我们如何将Haskell元组与Agda数据类型匹配?

来自分类Dev

为什么我们必须分别指定每个形式参数的数据类型?

来自分类Dev

我们可以在STL列表中保存2种数据类型吗?

来自分类Dev

我们可以从Java中的字符串声明数据类型吗

来自分类Dev

为什么我们需要C ++中的基本数据类型

来自分类Dev

为什么我们不在JavaScript中使用数据类型作为函数参数?

来自分类Dev

我们将为枚举分配的变量提供什么数据类型?

来自分类Dev

我们在 nodejs 程序的头中发送的参数的数据类型是什么?

来自分类Dev

我们可以将所有数据类型合二为一吗?

来自分类Dev

如何在double数据类型中获取List<>的最大值

来自分类Dev

当我们最大化时,如何在目标函数中转换最大值?

来自分类Dev

当我们最大化时,如何在目标函数中转换最大值?

来自分类Dev

使用 dplyr 我们可以只更改数据类型为整数的那些列的数字数据类型

来自分类Dev

为什么我们不能在内存限制内声明任何大小的数组,比如int数据类型?

来自分类Dev

如何使用我们的Java代码中的WSDL文件中找到的用户定义数据类型?

来自分类Dev

为什么我们不能在Map Reduce中使用Java基本数据类型?

Related 相关文章

  1. 1

    Java-当我们在自己的类中创建类型为class的数据类型时会发生什么?

  2. 2

    检测我们拥有的数据类型

  3. 3

    我们可以在模拟器中为用户定义的数据类型强制值吗?

  4. 4

    如何知道我们是否达到了fs.file-max的最大值

  5. 5

    如果我们不提供参数,PHP rand() 函数的最大值是多少?

  6. 6

    我们如何使用 Pandas 来生成最小值、最大值、平均值、中值……作为数据框的新列?

  7. 7

    如何从double数据类型值集中获取最大值?

  8. 8

    C中数据类型的大小、最小值和最大值

  9. 9

    我们可以在Sybase中创建TABLE数据类型吗?

  10. 10

    我们可以在Java的String数据类型中存储多少个字符?

  11. 11

    为什么我们不在JavaScript中使用数据类型作为函数参数?

  12. 12

    我们可以向集合数据类型添加主键吗?

  13. 13

    我们无法从ObjectiveC代码进行通讯/调用的哪种快速数据类型?

  14. 14

    我们如何将Haskell元组与Agda数据类型匹配?

  15. 15

    为什么我们必须分别指定每个形式参数的数据类型?

  16. 16

    我们可以在STL列表中保存2种数据类型吗?

  17. 17

    我们可以从Java中的字符串声明数据类型吗

  18. 18

    为什么我们需要C ++中的基本数据类型

  19. 19

    为什么我们不在JavaScript中使用数据类型作为函数参数?

  20. 20

    我们将为枚举分配的变量提供什么数据类型?

  21. 21

    我们在 nodejs 程序的头中发送的参数的数据类型是什么?

  22. 22

    我们可以将所有数据类型合二为一吗?

  23. 23

    如何在double数据类型中获取List<>的最大值

  24. 24

    当我们最大化时,如何在目标函数中转换最大值?

  25. 25

    当我们最大化时,如何在目标函数中转换最大值?

  26. 26

    使用 dplyr 我们可以只更改数据类型为整数的那些列的数字数据类型

  27. 27

    为什么我们不能在内存限制内声明任何大小的数组,比如int数据类型?

  28. 28

    如何使用我们的Java代码中的WSDL文件中找到的用户定义数据类型?

  29. 29

    为什么我们不能在Map Reduce中使用Java基本数据类型?

热门标签

归档