【发布时间】:2011-08-21 10:04:46
【问题描述】:
我有以下问题:
定义函数
and, or :: [Bool] -> Bool给出布尔列表的合取和析取。例如,
and [False, True] = False or [False, True] = True在一个空列表上,
and给出True和or给出False;解释这些选择的原因。
我知道我可以回答,但不确定最有效的方式。任何帮助将不胜感激。
我的解决方案是这样的(但我认为它可能更有效):
and, or :: [Bool] -> Bool
and [] = True
and [True, True] = True
and [False, False] = True
and [True, False] = False
or [] = False
or [True, True] = False
or [False, False] = False
or [True, False] = True
【问题讨论】:
-
是的,这是家庭作业@Don Stewart,我现在已将其标记为 :) 我知道如何执行该功能,这就是我所做的(我相信有一个更有效的这样做的方法 - 现在已经在上面概述了)。
-
这不是 Haskell,但您可能对 How To Design Programs 感兴趣,它可以很好地指导您如何设计程序(就像迄今为止的两个答案所做的那样)。
标签: list haskell recursion functional-programming