我正在尝试在 Haskell 中做一个多项式计算器,但我在乘法方面遇到了一些问题。多项式作为系数列表引入,其中第一项对应于 x^0,第二项对应于 x^1,依此类推。
对于乘法,我有一个元组列表,它们在第一个元素上指示它们所属的系数,在第二个元素上,它们显示相应的系数:
[(0,0),(0,-1),(0,-2),(0,-3),(0,-4),(0,1),(1,0),(2,-1),(3,-2),(4,-3),(0,2),(2,1),(4,0)
(这样做是为了保持对每个相乘项目及其所属系数的引用)
因为这是我进入函数式编程的第一步,所以我在制作一个列表时遇到了一些麻烦,其中第一个元素是上面显示的列表中元组中所有第二个元素的总和,其中 0 作为它的第一个元素,第二个术语应该是上面显示的列表中元组中所有第二个元素的总和,其中 1 作为它的第一个元素,依此类推。
我尝试使用此处第一个答案中指出的 Data.Sequence 更新, 但它似乎没有“更新”已经创建的 Data.Sequence,它每次都返回一个新的。
有什么方法可以创建列表并根据索引更新其内容?我试图弄清楚如何递归地解决这个问题,但我不知道如何去做,所以任何帮助都将不胜感激。