【发布时间】:2012-05-21 21:10:32
【问题描述】:
我需要编写一个代码,如果函数满足列表的大部分元素,则返回 True,而其中的 false 不满足。
例如:moreThan odd [1,2,3] 是 True,但 moreThan odd [1,2,3,4] 是 False。
这是我的代码:
moreThan funkt xs
= let
control funkt n (x : xs)
= control (if .?. then n + 1 else n) xs
contol funkt _
= False
in
control funtk 0 xs
有人可以说我如何控制它以及我应该在.?. 中写什么
谢谢!
【问题讨论】:
-
moreThan = ((\(lTrue,lFalse) -> length lTrue > length lFalse).) . partition会更惯用一些。 -
好吧,如果你只使用
let而不是随机无意义的 lambda,那会更习惯。 -
嗯,首先我要问:这是作业吗?如果是这样,则应使用 [homework] 标记。
-
不,我有一个基本的 Haskell 考试,我正在努力准备它。所以,我不知道如何解决这个练习,如果你能告诉我如何解决,我会很高兴。
-
@leftaroundabout: 更性感的
(>>> uncurry (>) <<< length *** length) <<< partition怎么样? :D