我在使用foldr解决这个问题时遇到了麻烦。我理解foldr用于简单问题(如foldr (+) 5 [1,2,3,4]),但这个问题更加复杂:
问题:q2的值是多少?
findSubsequence next highest = case next == highest + 1 of
True -> next
False -> highest
q2 = (foldr findSubsequence 0 [5,6,8,4,7,3,2,1,0,2,3,1,0]
,foldr findSubsequence 0 [0,1,3,2,0,1,2,3,7,4,8,6,5]
,foldr findSubsequence 0 [1,2,3,4,3,2,1]
,foldr findSubsequence 0 [4,3,2,1,2,3,4]
)
使用foldr对每个列表进行操作,可以得到结果值,并将产生的列表组合起来,结果为[5,3,4,4],但我不知道解决这个问题的过程。希望能够得到帮助 :)
foldr
的定义开始。 - melpomene