gpt4 book ai didi

带乘法的 Haskell 文件夹

转载 作者:行者123 更新时间:2023-12-02 17:21:17 30 4
gpt4 key购买 nike

我应该编写一个函数,其中包含之前每次与该数字相乘的乘积

基本上是这样的:

> productFromLeftToRight [2,3,4,5]
[120,60,20,5]

我应该使用高阶函数,例如折叠等。我正在考虑使用foldr 通过 lambda 表达式遍历列表。这就是我的想法:

> productFromLeftToRight nums = foldr (\x acc -> [x] * acc ++ acc) [] nums

因为它会像 f(2 (f 3 (f 4 (f 5 [])))) 一样解开,我认为我是对的,但我得到了整个打印错误,我不知道如何将数字与 acc 的第一个元素相乘( head acc 不起作用)

最佳答案

productFromLeftToRight = scanr1 (*)

productFromLeftToRight' = 
snd . foldr (\x (acc,lst) -> (x * acc, x * acc : lst)) (1,[])

关于带乘法的 Haskell 文件夹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34234728/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com