【发布时间】:2015-03-20 15:16:24
【问题描述】:
(functionsort functionlist value)
functionsort 接受 2 个参数、函数列表和单个值。 当给定“值”时,返回按升序排序的相同函数列表。
例如:这是我的功能列表
(define myfunctions (list (lambda (x) (+ x 3))
(lambda (x) (- 100 x))
(lambda (x) (* x 2))))
(define fs
(function-sort myfunctions
5))
应该返回以下内容
((first fs) 6) ; (first fs) is (lambda (x) (+ x 3))
9
((second fs) 6) ; (second fs) is (lambda (x) (* x 2))
12
((third fs) 6) ; (third fs) is (lambda (x) (- 100 x))
94
这是我目前得到的:
define (function-sort functions value )
(map (lambda (y) (y value)) functions))
计算值 9 94 12 未排序。 我尝试使用
(sort myfunctions #:key (function-sort myfunctions 10) <)
这给了我错误
. . sort: contract violation
expected: (any/c . -> . any/c)
given: '(13 90 20).
有什么建议吗?提前致谢
【问题讨论】:
标签: sorting lambda scheme racket