Как написать сортировку номеров или лучшую версию - PullRequest
0 голосов
/ 19 марта 2011

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

(define (sort-nums lst) (if (null? Lst)) null (если (число? (car lst) я хочу, чтобы эта часть сохранила номер, а затем удалила все, что не является числом (sort (cons (car lst) (sort-nums (cdr lst))))))

если возможно, это сработает или мне нужно будет написать по-другому, например, чтобы доказать, что это работает, будет похоже на

(sort-nums (list 'a' c 24 'f')г 16)) (16 24)

1 Ответ

1 голос
/ 19 марта 2011

Вы можете сделать свою жизнь проще, сортируя и раздевая числа по отдельности.Попробуйте

(sort (list-transform-positive '(a 2 b 1) 
                               number?) 
       <)

Сначала мы выбираем только те вещи, которые являются числами (используя list-transform-positive), затем сортируем их по возрастанию (используя sort).

В качестве общего совета, вам будет намного легче работать с лиспом, если вы сделаете отступ грамотно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...