gpt4 book ai didi

javascript - 不会崩溃并且运行良好的文件夹

转载 作者:行者123 更新时间:2023-11-30 09:23:18 25 4
gpt4 key购买 nike

我想要一个类似于 Haskell 或 lisp 中的文件夹的文件夹。我的 foldr 导致大型数组上的堆栈溢出,这可能是因为堆栈上的大量未决操作在达到基本情况之前无法减少。您将如何优化我的 foldr 以使其适用于大型阵列。

const foldr = (f, acc, [x, ...xs]) => 
(typeof x === 'undefined')
? acc
: f (x, foldr (f, acc, xs))

foldr((x, acc) => x + acc, 0, [...Array(100000).keys()])

最佳答案

foldr 几乎是 reduceRight :

const flip = f => (a, b) => f(b, a)

const foldr = (f, acc, arr) =>
arr.reduceRight(flip(f), acc)

如果您想保留对 [x, . ..xs] 解包给你。

const flip = f => (a, b) => f(b, a)

const foldr = (f, acc, arr) =>
arr.reduceRight(flip(f), acc)

console.log(foldr((x, acc) => x + acc, 0, [...Array(100000).keys()]))

关于javascript - 不会崩溃并且运行良好的文件夹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50360492/

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