Сортировка 8 троек с разными приоритетами для столбцов - Lisp

Узнай цену своей работы

Формулировка задачи:

Даны 8 троек - 0 0 0, 0 0 1, 0 1 0, 0 1 1, 1 0 0, 1 0 1, 1 1 0, 1 1 1. Рассортировать их с разными приоритетами для столбцов.
Листинг программы
  1. (defun psort (w prs &optional (m (reduce #'max prs)))
  2. (if (zerop m) w (psort (stable-sort w #'< :key #'(lambda (p) (nth (position m prs) p))) prs (1- m))))
  3. > (psort '((0 0 0) (0 0 1) (0 1 0) (0 1 1) (1 0 0) (1 0 1) (1 1 0) (1 1 1)) '(3 2 1))
  4. ((0 0 0) (1 0 0) (0 1 0) (1 1 0) (0 0 1) (1 0 1) (0 1 1) (1 1 1))

Решение задачи: «Сортировка 8 троек с разными приоритетами для столбцов»

textual
Листинг программы
  1. f p = map snd . sort . map ((,) =<< sum . zipWith ((*).(-) 3) p)

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

11   голосов , оценка 3.909 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы