Function 如何重新排列此函数以返回Haskell中的扩展列表
我在ProjectEuler工作,在Haskell中编写了以下代码,用于返回符合(给定)解决方案的数字列表:Function 如何重新排列此函数以返回Haskell中的扩展列表,function,haskell,list-comprehension,Function,Haskell,List Comprehension,我在ProjectEuler工作,在Haskell中编写了以下代码,用于返回符合(给定)解决方案的数字列表: lists = [n|n<- permutations [1..6] , ring n ] ring [a,b,c,d,e,f] = (length $ nub $ map sum [[d,c,b],[f,b,a],[e,a,c]]) == 1 如何使列表返回此格式的列表 (注:我将添加适当的函数,以便稍后返回站点实际需要的内容)这很简单 lists = [ [[d,c,b],
lists = [n|n<- permutations [1..6] , ring n ]
ring [a,b,c,d,e,f] = (length $ nub $ map sum [[d,c,b],[f,b,a],[e,a,c]]) == 1
如何使列表
返回此格式的列表
(注:我将添加适当的函数,以便稍后返回站点实际需要的内容)这很简单
lists = [ [[d,c,b],[f,b,a],[e,a,c]] | n@[a,b,c,d,e,f] <- permutations [1..6], ring n ]
lists=[[d,c,b],[f,b,a],[e,a,c]]| n@[a,b,c,d,e,f]顺便说一句,我相信你已经看到了这一点,但是Euler问题在Haskell Wiki上有很好的记录()但这可能会被认为是作弊。我更愿意通过思考自己是如何做到的来学习。谢谢你的帮助,我从来都不知道@
。更进一步地说,我一直得到一个错误的答案:432513621(真正的答案是:432621513)。我使用:answer=read$concatMap show$maximum$map concat$map排序列表::Integer
能告诉我哪里出了问题吗?
lists = [ [[d,c,b],[f,b,a],[e,a,c]] | n@[a,b,c,d,e,f] <- permutations [1..6], ring n ]
[ foldl (++) "" $ map show [d,c,b,f,b,a,e,a,c] | n@[a,b,c,d,e,f] <- permutations [1..6], ring n ]