【发布时间】:2017-10-15 15:10:33
【问题描述】:
有人帮了我下面的函数,但我需要它的逆,这意味着下面的输出将是我的函数的输入,下面的输入将是我的函数的输出
conv = concat . f
where f [] = []
f (x:xs) = map (x+) xs : f xs
> conv [3,10,5]
[13,8,15]
> conv [2,5,15,34]
[7,17,36,20,39,49]
【问题讨论】:
-
两个反对意见: 1. 问题没有完全说明。你给出一个将三个数字映射到三个数字的关系;相对清楚的是如何将其概括为将 n 个数字映射到 n 个数字,但是您的输入/输出示例之一将 6 个数字映射到 4 个数字。什么? 2. 您没有表现出自己的努力,因此我们无法引导您了解您所犯的具体错误或误解。
-
这看起来像是某种卷积。我不确定逻辑是什么。在您的第二个示例中,没有明显的方法可以使用给定的关系来解决它。
-
由于这个帖子已经被搁置,因此不会接受我的回答,这里是它的gist。
-
我认为这是一个很好的问题,虽然没有很好地表达。
标签: haskell functional-programming