Functional programming 用于查找给定函数的列表的最小元素的Racket函数
在Racket(Scheme)中是否有函数可以给我元素,它在列表中应用给定函数后产生最小值。 类似于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) 至少在没有直接函数的情况下,应该有一个高阶函数的一行(因为我必须填写一行才能得到这种行为)。
(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)