【发布时间】:2019-09-17 07:20:56
【问题描述】:
我的目标是将列表定义为局部变量,以便从中获取最大元素。我的代码:
#lang racket
(define (f a b c)
(list (+ (* a a) (* b b) (* c c)) (+ a c))
(define (max-of-list-2 lst)
(foldr max (first lst) (rest lst)))
(max max_from_list 12))
(f 5 6 7)
在第二行中,我定义了带有计算值的列表。我的目标是将它传递到下一行,以便从中获取最大数量,最后从列表的最大值和 12 中获取最大值。我做错了什么。如何处理?
【问题讨论】:
-
用另一个定义命名它:
(define lst (list ...))。然后您可以在任何 lisp 表达式中按名称引用它,例如一个函数调用。 -
但我无法调用 (max max-of-list-2 (lst) 12)
-
@IntoTheDeep
(max (max-of-list-2 lst) 12)怎么样? @IntoTheDeep -
@IntoTheDeep 我们很难获取您的非工作代码并制定出您的实际意图。你能更好地描述这个问题吗?你能想出比
f更好的名字吗?返回值应该是多少?(* a a)(* b b)(* c c)和(+ a c)值的意义何在?这只是一个任务吗?
标签: functional-programming scheme max racket fold