Haskell 我不理解哈斯克尔·福尔德

Haskell 我不理解哈斯克尔·福尔德,haskell,Haskell,神秘是做什么的 谢谢。不,foldr f[]xs=/=[]。让我想想 mystery xs = foldr f [] xs -- ( assuming xs == (x:t), i.e. non-empty: ) = foldr f [] (x:t) -- ( by definition of `foldr`: ) = f x (foldr f [] t) -- ( by definition of `mystery`: ) = f x (mystery t)

神秘是做什么的

谢谢。

不,foldr f[]xs=/=[]。让我想想

mystery xs 
  = foldr f [] xs 
  -- ( assuming xs == (x:t), i.e. non-empty: )
  = foldr f [] (x:t)
  -- ( by definition of `foldr`: )
  = f x (foldr f [] t)
  -- ( by definition of `mystery`: )
  = f x (mystery t)
  = mystery t ++ [x]
那么,神秘是做什么的呢?例如,它与列表[a、b、c]有什么关系

mystery [a,b,c]
  = mystery [b,c] ++ [a]
  = (mystery [c] ++ [b]) ++ [a]
  = ((mystery [] ++ [c]) ++ [b]) ++ [a]
  = ...

你可以在这里完成图片。

我坚信这是一个家庭作业问题。请提供您为解决这些问题所做的努力。为什么大量的反对票。。请保持haskell社区友好-即使是作业也没问题-只是不要在回答中立刻破坏一切-谢谢
mystery [a,b,c]
  = mystery [b,c] ++ [a]
  = (mystery [c] ++ [b]) ++ [a]
  = ((mystery [] ++ [c]) ++ [b]) ++ [a]
  = ...