List haskell全函数
我需要一个程序来检查所有元素对之间的差异是否在-2到2的区间内(>=-2&&<2)。如果是,则返回List haskell全函数,list,haskell,boolean,List,Haskell,Boolean,我需要一个程序来检查所有元素对之间的差异是否在-2到2的区间内(>=-2&&=-2&&(x>=-2)和&(x嗯,问题说明不是很清楚 你说: 所有元素之间的差值在-2到2之间(>=-2&&(x>=-2)和&(x为什么不简单地 allfunc xs = (maximum xs - minimum xs) <= 2 allfunc xs=(最大xs-最小xs)为什么不干脆 allfunc xs = (maximum xs - minimum xs) <= 2 allfunc xs=(最
True
,否则返回False
。例如,[1,2,3]
为真
,但[1,3,4]
为假
。
我正在使用all
功能。我的if
子句有什么问题
allfunc (x : xs)
= if all (...) xs
then allfunc xs
else [x] ++ allfunc xs
allfunc _
= []
或者我做了一些完全错误的事情?对于这一点,使用列表理解或使用符号可能更容易
pairsOf lst = do
x <- lst
y <- lst
return (x, y)
现在您只需确保差异lst
中的每个元素都在-2
和2
之间
当然,这只是一种可能的方法。还有许多其他方法。对于这一点,使用列表理解或使用符号可能更容易
pairsOf lst = do
x <- lst
y <- lst
return (x, y)
现在您只需确保差异lst
中的每个元素都在-2
和2
之间
当然,这只是一种可能的方法。还有很多其他的方法。基本上,是的,你做错了什么
all
意味着接受一个谓词和一个要测试的值列表。因此,它将返回True
当且仅当所有值在应用于给定谓词函数时均为True时。即:
allValuesEven = all even
allValuesOdd = all odd
基本上,是的,你做错了什么
all
意味着接受一个谓词和一个要测试的值列表。因此,它将返回True
当且仅当所有值在应用于给定谓词函数时均为True时。即:
allValuesEven = all even
allValuesOdd = all odd
嗯,问题说明不是很清楚 你说: 所有元素之间的差值在-2到2之间(>=-2&&<2) 而且: 例如,[1,2,3]为真,但[1,3,4]为假 [1,2,3]的情况如何 假设你的意思是
-2 Bool
allfunc theList=all(\x->(x>=-2)和&(x嗯,问题说明不是很清楚
你说:
所有元素之间的差值在-2到2之间(>=-2&&<2)
而且:
例如,[1,2,3]为真,但[1,3,4]为假
[1,2,3]的情况如何
假设你的意思是-2 Bool
allfunc theList=all(\x->(x>=-2)和&(x为什么不简单地
allfunc xs = (maximum xs - minimum xs) <= 2
allfunc xs=(最大xs-最小xs)为什么不干脆
allfunc xs = (maximum xs - minimum xs) <= 2
allfunc xs=(最大xs-最小xs)完成您描述的任务的简单方法是:
allfunc xs = all (<=2) [abs(a-b) | a <- xs, b <- xs ]
allfunc xs=all(完成您描述的任务的简单方法是:
allfunc xs = all (<=2) [abs(a-b) | a <- xs, b <- xs ]
allfunc xs=all(您应该注意,这结合使用了一个延续,并使用了一些您可能编写得更好的折叠。顺序相关吗?[-2,0]的输出是什么?你应该注意,这结合了使用一个延续,以及使用一些你可能会写得更好的折叠。顺序相关吗?[-2,0]的输出是什么?人们可能会简化并做一些类似的事情:diffs lst=[(x-y)| xOne可能会简化并做一些类似的事情:diffs lst=[(x-y)| XY您的第一句不正确:[]
与模式x:xs
不匹配。您的第一句不正确:[]
与模式x:xs
不匹配。