我基本上试图解决Project Euler的问题编号5.我试图找到可以被1-10整除的最小数字。到目前为止,我有这个,我得到了正确答案,但如果我不停止,它会继续下去。一旦找到第一个号码,我怎么让它停止?
set2 :: (Int) -> [Int]
set2 x = [y | y <- [1..10], x `mod` y == 0]
divFunc = [x | x <- [1..], length(set2 x) == 10]
答案 0 :(得分:4)
您可以使用head
获取列表的第一个元素。
> head divFunc
2520
其他一些小评论:
head
,因为它在空列表中失败。在这种特殊情况下没关系,因为你调用它的函数要么有一个元素(在这种情况下head
很好),要么在产生任何有用信息之前无限期地思考(在这种情况下{{1}不会使情况变得更糟)。但要注意这个功能;在你使用它之前,你应该总是有一个安全的参数(比如上面的参数)。head
是一个有趣的名字。它不是一种功能。divFunc
功能。