gpt4 book ai didi

functional-programming - 在方案中将函数作为参数传递

转载 作者:太空宇宙 更新时间:2023-11-03 19:00:22 25 4
gpt4 key购买 nike

我正在尝试创建一个函数 (last),它将一个函数 ( f ) 和一个 List 作为参数。该列表被传递给函数(奇数?),如果列表中的最后一个元素是奇数,则返回 true(#t) 否则返回 false (#f)。但是下面的代码不起作用,正确的方法是什么将函数声明为参数。

(define (last f L)
(if (null? L) '() ( last f (cdr L)) ))

(last odd? '( 0 5 3 8 6 7))

最佳答案

此处介绍了如何仅使用内置函数编写解决方案,注意将过程作为参数传递的正确语法,并注意将函数命名为 last< 是个坏主意,它与现有的程序冲突,而您应该使用它来解决问题!

(define (my-last f L)
(f (last L)))

如果您确实必须从头开始编写函数,那么请确保您了解需要哪些基本情况:

(define (my-last f L)
(cond ((null? L) #f)
((null? (cdr L)) (f (car L)))
(else (my-last f (cdr L)))))

无论哪种方式,它都按预期工作:

(my-last odd? '(0 5 3 8 6 7))
=> #t

关于functional-programming - 在方案中将函数作为参数传递,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36379811/

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