Функция сортировки схемы PLT - PullRequest
0 голосов
/ 03 февраля 2010

Руководство по PLT-схеме говорит, что реализованная функция сортировки способна сортировать список по извлеченному значению с помощью лямбда-функции. текст ссылки

В руководстве приведен пример неработающего кода:

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

, который возвращает сообщение об ошибке.быть calles так, чтобы это фактически сортировало список согласно значениям, вычисленным данной функцией?

Ответы [ 2 ]

2 голосов
/ 03 февраля 2010

Это работает для меня.Какой диалект схемы вы используете?И какую ошибку вы получаете?В моей настройке DrScheme я выбрал «Модуль» из выпадающего списка внизу слева, и

 #lang scheme

запускается в верхнем окне.

1 голос
/ 03 февраля 2010

Мое предположение похоже на мнение Нила: во-первых, вы должны использовать для этого свежую версию PLT. Попробуйте запустить это, когда DrScheme находится на языке модуля (первый выбор в диалоге выбора языка):

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

Во-вторых, этот синтаксис использует аргументы ключевых слов, поэтому, если вы используете какой-либо язык, например R6RS или R5RS или Pretty Big и т. Д., Вы не сможете использовать сортировку с таким ключевым словом. (Лучше всего придерживаться языка модуля и #lang scheme.)

...