functional-programming - 用于查找给定函数的列表的最小元素的 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) .
至少在没有直接函数的情况下,应该有一个具有更高阶函数的单行衬里(因为我必须填写一行才能获得这种行为)。
有任何想法吗?

最佳答案

试试 argmin :

#lang racket

(define lst '((1 . 3) (3 . 8) (5 . 6)))
(define (f pair)
  (- (cdr pair) (car pair)))
(argmin f lst)
生产 '(5 . 6)如您所愿。

关于functional-programming - 用于查找给定函数的列表的最小元素的 Racket 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63415036/

相关文章:

css - 将 Racket 颜色与 CSS 颜色相互转换

functional-programming - 在纯函数式语言中,有没有算法可以得到反函数?

haskell - 累加器参数如何发送给函数?

scheme - 我将如何进行这种尾部递归?

algorithm - 这个递归函数是迭代的吗?

"or"的方案宏

functional-programming - 返回一对 - 语法错误

java - 如何将 (a,b) 函数传递给方法并使用它?

haskell - 使函数与 'if' 无点

scheme - Racket\Scheme 中的返回类型