用于查找给定函数的列表的最小元素的球拍函数

Geo*_*hev 4 scheme functional-programming 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)
Run Code Online (Sandbox Code Playgroud)

这应该给'(5 . 6).

至少在没有直接函数的情况下,应该有一个具有更高阶函数的单行衬里(因为我必须填写一行才能获得这种行为)。有任何想法吗?

Sor*_*ase 5

尝试argmin

#lang racket

(define lst '((1 . 3) (3 . 8) (5 . 6)))
(define (f pair)
  (- (cdr pair) (car pair)))
(argmin f lst)
Run Code Online (Sandbox Code Playgroud)

'(5 . 6)根据您的需要生产。