PLT Scheme指南说它实现的sort函数能够使用lambda函数根据一个extarcted值对列表进行排序。 link text
该指南提供了一个非工作代码示例 -
(sort '(("aardvark") ("dingo") ("cow") ("bear"))
#:key car string<?)
返回错误。
这个函数应该如何设置为calles,以便它根据给定函数计算的值实际对列表进行排序?
答案 0 :(得分:2)
它对我有用。您使用哪种方言方言?你得到了什么错误?在我的DrScheme设置中,我从左下角的下拉列表中选择了“模块”,然后
#lang scheme
在顶部窗口中运行。
答案 1 :(得分:1)
我的猜测类似于Neil:首先,您应该使用最新版本的PLT。当DrScheme使用Module语言(语言选择对话框中的第一个选项)时,尝试运行此命令:
#lang scheme
(sort '(("aardvark") ("dingo") ("cow") ("bear"))
#:key car string<?)
其次,该语法使用关键字参数,因此如果您使用某种语言,如R6RS或R5RS或Pretty Big等,那么您将无法使用类似关键字的排序。 (最好只使用模块语言和#lang scheme
。)