gpt4 book ai didi

scheme - Scheme 中的 foldr 和 apply 有什么区别?

转载 作者:太空宇宙 更新时间:2023-11-03 18:50:16 24 4
gpt4 key购买 nike

编程语言:Scheme/DrRacket

我发现 foldrapply 之间的用法没有区别

谁能解释一下它们有何不同?据我所知,foldr 和 apply 可以做同样的事情。谢谢!

最佳答案

它们非常不同,尽管在某些情况下它们可能是等同的。


(apply func '(1 2 3))

相当于

(func 1 2 3)

(foldr func 0 '(1 2 3))

相当于

(func (func (func 3 0) 2) 1)

在函数是关联和交换的情况下,它允许您提供可变数量的参数,结果将是相同的。例如

(apply + '(1 2 3)) == (foldr + 0 '(1 2 3))

但是 foldr 可以用来合并只接受两个参数的函数的结果,或者使用更灵活的方式来合并结果。

有关foldr 的更多信息,请参阅Map, Filter, Foldr in DrRacket/Scheme

关于scheme - Scheme 中的 foldr 和 apply 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58293215/

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