繁体   English   中英

Haskell 函数处理整数元组

[英]Haskell function to work on integer tuple

我刚刚开始学习 Haskell 并且正在尝试创建一个函数,该函数对包含 6 个整数的元组执行多次检查。 这些检查包括:

  1. 所有数字都不同;
  2. 交替数字是偶数和奇数,或奇数和偶数;
  3. 替代数字相差两个以上;
  4. 第一对和中间对数字形成的数字都是最后一对数字的倍数

问题是我可以尝试这样做并具有一些工作功能,例如

contains e [] = False
contains e (x:xs)
    |   x == e = True
    |   otherwise = contains e xs

unique :: [Int] -> Bool
unique [] = True
unique (x:xs)
    |   contains x xs   = False
    |   otherwise       = unique xs

对于第一个要求,但正如您所看到的,这依赖于使用列表而不是元组。 如果有人可以帮助我为元组创建这些函数,以及任何代码效率建议,我将不胜感激。

您可以将 6 元组转换为列表,使用:

tuple6ToList :: (a, a, a, a, a, a) -> [a]
tuple6ToList (a, b, c, d, e, f) = [a, b, c, d, e, f]

然后例如对列表运行检查。 这可能更简单,因为然后可以在列表上递归,而对于元组,这意味着您将检查“展开”为对元素的单独检查。

暂无
暂无

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

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