【发布时间】:2016-08-13 16:19:37
【问题描述】:
任务:
编写一个递归 Haskell 函数,它得到 2 个有序列表,该函数决定每个元素是否相等(如果其中一个相同,则函数值为
False)。例如:
myfunction [1..5] [6..10] == Truemyfunction [1..5] [5..10] == False
我无法使用elem 功能。
我可以使用递归和区分大小写的选择。
函数类型:
myfunction :: Ord a => [a] -> [a] -> Bool
我尝试过这样的事情:
myfunction :: Ord a => [a] -> [a] -> Bool
myfunction [] list = True
myfunction list [] = True
myfunction (x:xs) (y:ys)
| x == y = False
| xs == myfunction ???????? = False
但它不起作用......
【问题讨论】:
-
您知道您从不使用
<函数,提示将断言只有x在第二个列表中(或不在),然后对所有其他@987654329 递归执行此操作@ -
你最后一行的逻辑是什么?什么是
disjoint,它从何而来,为什么只需要单独考虑第二个列表? -
我编辑了它,它不是脱节的,对不起。我不知道这就是我寻求帮助的逻辑。
-
请提供以下之一:编译代码并解释您不理解其行为的哪一部分,或在帖子中提供确切代码时编译器给出的错误消息以及您为什么不理解'不理解编译器错误。这篇文章不包含其中任何一个。
-
好吧,如果你不知道逻辑那你为什么要写最后一行?你想在那个时候发生什么?想一想,这条线是你问题的核心。
标签: function haskell recursion