Схема имеет встроенную функцию сортировки, которая в некоторых случаях на самом деле быстрее, чем все используемые нами алгоритмы сортировки.
(sort < '(5 2 6))
возвращает
'(2 5 6)
Основная проблема, которую я вижу приВаша процедура заключается в том, что вы выполняете обмен только один раз.Это здорово, если вы можете гарантировать, что один всегда будет в середине двух других, но я не уверен, что так будет всегда.Также установлено!это довольно уродливо, и когда я выучил схему, мой профессор сказал мне не использовать ее, потому что она была ресурсоемкой, и есть лучшие способы сделать это.Я бы порекомендовал поместить их всех в список, а затем отсортировать и вытащить их из списка, если вы хотите сделать это таким образом.