所以我是Haskell的新手,下面我尝试编写一个函数,它接受给定的e值和给定的列表,并确定给定的值是否出现在给定的列表中,如果给定的值出现,则输出True,如果没有,则输出False。
inListm e [] = False
inListm e (x:xs)
| e == x = True || inListm e xs
| otherwise = False || inListm e xs
如果
inListm 2 [0, 2, 1, 2]
则输出为
True
但是,我希望最终输出是这样的列表
[True]
我已经尝试通过
inListd e [] = False : []
inListd e (x:xs)
| e == x = True : [] || inListd e xs
| otherwise = False :[] || inListd e xs
但所有给我的是一个错误,所以我想知道我如何才能解决这个问题
2条答案
按热度按时间de90aj5v1#
考虑重用现有函数;重用是使编写大型程序成为可能的一个重要因素。2就像这样:
p4rjhz4m2#
你的思路是对的。唯一需要做的是如果你有结果就返回一个列表,所以:
话虽如此,将结果 Package 在列表中似乎没有多大意义。