Functional programming 用于查找给定函数的列表的最小元素的Racket函数

Functional programming 用于查找给定函数的列表的最小元素的Racket函数,functional-programming,scheme,racket,Functional Programming,Scheme,Racket,在Racket(Scheme)中是否有函数可以给我元素,它在列表中应用给定函数后产生最小值。 类似于(apply min(map f list))但在应用f之前返回元素。 例如: (define lst '((1 . 3) (3 . 8) (5 . 6)) (define (f pair) (- (cdr pair) (car pair))) (minimum f lst) 这应该给出”(5.6) 至少在没有直接函数的情况下,应该有一个高阶函数的一行(因为我必须填写一行才能得到这种行为)。

在Racket(Scheme)中是否有函数可以给我元素,它在列表中应用给定函数后产生最小值。 类似于
(apply min(map f list))
但在应用f之前返回元素。 例如:

(define lst '((1 . 3) (3 . 8) (5 . 6))
(define (f pair)
  (- (cdr pair) (car pair)))
(minimum f lst)
这应该给出
”(5.6)

至少在没有直接函数的情况下,应该有一个高阶函数的一行(因为我必须填写一行才能得到这种行为)。 有什么想法吗?

试试:

根据需要生成
”(5.6)

您可以使用
min
,它接受
参数:

(require relation)
(apply min #:key f lst)
(5.6)

此版本的
min
也适用于字符串或任何其他可订购类型(即不仅仅是数字)

[披露:我是这个图书馆的作者]

(require relation)
(apply min #:key f lst)