DrRacket (или просто рэкет в CLI) - это реализация на нескольких языках. Самое странное, что #lang scheme
(или просто #!scheme
) не соответствует стандарту Схемы, но является устаревшим названием языка, совместимого с R5RS, но изменил его имя на #!racket
и имеет неизменяемые пары в качестве стандарта.
Другие языки, поддерживаемые программой ракетки, которая использует измененные пары: #!r5rs
и #!r6rs
. Они следуют стандарту Scheme, и если вы используете их, вы можете компилировать и запускать свои программы с другими реализациями. Просто изменив первую строку на то, что вы говорите, что остальная часть этого файла будет запрограммирована на этом языке. R6RS имеет vector-sort
в то время как R5RS нуждается в поддержке со стороны SRFI-95 sort library «s sort!
PS: Если вы следуете SICP вы можете быть заинтересованы в #lang planet neil/sicp
. See here if you need help getting it to work.
Спасибо, но мне нужно использовать функцию 'sort!'. – mtyurt
@mtyurt Это _exactly_ равнозначно 'sort!': '(Set! Lst (sort lst <))', почему бы вам не использовать его? –