PLT Scheme排序功能

时间:2010-02-03 16:22:41

标签: racket

PLT Scheme指南说它实现的sort函数能够使用lambda函数根据一个extarcted值对列表进行排序。 link text

该指南提供了一个非工作代码示例 -

(sort '(("aardvark") ("dingo") ("cow") ("bear"))
      #:key car string<?)

返回错误。

这个函数应该如何设置为calles,以便它根据给定函数计算的值实际对列表进行排序?

2 个答案:

答案 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。)