Форум программистов, компьютерный форум, киберфорум
Lisp
Войти
Регистрация
Восстановить пароль
Другие темы раздела
Lisp Циклическая перестановка N следующих подряд элементов в списке https://www.cyberforum.ru/ lisp/ thread2331431.html
Напишите функцию, осуществляющую циклическую перестановку N следующих подряд элементов в списке. Например, при N=3 и исходном списке (a b c d e f g h) должно получиться (f g h a b c d e) (defun...
Lisp Логические выражения COND
Здравствуйте! Объясните пожалуйста почему результатом следующего выражения является "Т" > (defun log_sled (x y) (cond (x y) (T))) LOG_SLED ...
Lisp Как задать условие? что переменная a принадлежит множеству X)?
Срочно! Как задать условие, что "пока переменная a входит в множество X (элементы X заданы от элемента x до +бесконечности), то......." В общем основной вопрос: Как задать условие, что...
Lisp Доброго времени суток! R5RS. Нужна программа для определения дня недели по дате (define( day-of-week d m y) (if (> m 2) (remainder(-(+ d (quotient (* 13 (+ m 1)) 5) (remainder y 100) (quotient (remainder y 100) 4) ... https://www.cyberforum.ru/ lisp/ thread2328961.html
Lisp Задача о хромом короле https://www.cyberforum.ru/ lisp/ thread2328707.html
Здравствуйте , ну.. в общем нужно написать программу common lisp'e которая может посчитать количество путей с помощью которых король может добраться с крайнего второго верхнего правого угла к...
Lisp Отсечь последний элемент списка
Здравствуйте! Нужно написать программу, которая бы отсекала последний элемент списка используя только примитивы car,cdr, cond, т.е. рекурсивно. Вот как я пытаюсь это сделать: рекурсивно при...
Lisp Написать программу, которая создает список из n раз повторенных списков
Всем доброго времени суток. Нужна помощь с выполнением задания Напишите функцию от двух аргументов х и n , которая создает список из n раз повторенных списков ,состоящих из одного элемента х...
Lisp Как написать/Где ошибка в коде на решения уравнеия методом бисекции? Необходимо реализовать на Scheme (диалекте lisp) Реализуйте поиск корней уравнения f(x)=0 на интервале x ∈ с точностью ε методом бискеции (половинного деления), где f(x) — нелинейная... https://www.cyberforum.ru/ lisp/ thread2327896.html
Lisp Нахождение минимума функции методом золотого сечения https://www.cyberforum.ru/ lisp/ thread2327804.html
Необходимо реализовать на Scheme: Реализуйте поиск минимума функции одной переменной. Определите процедуру (golden f x0 x1 ε), находящую значение аргумента функции f в точке минимума на...
Lisp Как работает этот алгоритм? Объясните как работает этот алгоритм по вычислению дня недели по дате. Зачем здесь столько вычислений целых частей и остатка? Есть что ли какая-то конкретная формула для вычисления дня недели по... https://www.cyberforum.ru/ lisp/ thread2326630.html
4324 / 4052 / 320
Регистрация: 12.05.2012
Сообщений: 2,861
10.10.2018, 10:49 0

Обработка списков

10.10.2018, 10:49. Просмотров 542. Ответов 3
Метки (Все метки)

Ответ

вариант Common Lisp:
Lisp
1
2
3
4
5
6
7
8
9
10
(defun step-range (n m d)
  (cond ((> n m) nil)
        (t (cons n (step-range (+ n d) m d)))))
 
> (step-range 2 8 2)
(2 4 6 8)
> (step-range 3 8 2)
(3 5 7)
> (step-range 3 9 2)
(3 5 7 9)
Добавлено через 1 минуту
Lisp
1
2
3
4
5
6
7
8
9
(defun step-range (n m d)
  (when (<= n m) (cons n (step-range (+ n d) m d))))
 
> (step-range 2 8 2)
(2 4 6 8)
> (step-range 3 8 2)
(3 5 7)
> (step-range 3 9 2)
(3 5 7 9)
Добавлено через 3 минуты
Lisp
1
2
3
4
5
6
7
8
9
(defun step-range (n m d)
  (loop for a from n to m by d collect a))
 
> (step-range 2 8 2)
(2 4 6 8)
> (step-range 3 8 2)
(3 5 7)
> (step-range 3 9 2)
(3 5 7 9)
Добавлено через 2 минуты
Lisp
1
2
3
4
5
6
7
(defun flatten (w &optional ac) 
  (cond ((null w) ac)
        ((atom w) (cons w ac))
        ((flatten (car w) (flatten (cdr w) ac)))))
 
> (flatten '(a (b (c))))
(A B C)
Добавлено через 46 секунд
Lisp
1
2
3
4
5
6
7
(defun flatten (w)
  (loop for a in w 
        if (listp a) append (flatten a)
        else collect a))
 
> (flatten '(a (b (c))))
(A B C)
Добавлено через 52 секунды
Lisp
1
2
3
4
5
(defun flatten (w)
  (mapcan #'(lambda (a) (if (listp a) (flatten a) `(,a))) w))
 
> (flatten '(a (b (c))))
(A B C)
Добавлено через 1 минуту
Lisp
1
2
3
4
5
(defun flatten (w) 
  (if (atom w) `(,w) (mapcan #'flatten w)))
 
> (flatten '(a (b (c))))
(A B C)
Добавлено через 7 минут
Lisp
1
2
3
4
5
6
7
(defun flatten (w &optional ac) 
  (if w (if (atom w) (cons w ac) 
            (flatten (car w) (flatten (cdr w) ac)))
      ac))
 
> (flatten '(a (b (c))))
(A B C)
Добавлено через 4 минуты
Lisp
1
2
3
4
5
6
7
(defun flatten (w)
  (loop for a in w
        if (listp a) nconc (flatten a)
        else collect a))
 
> (flatten '(a (b (c))))
(A B C)
Добавлено через 3 минуты
Lisp
1
2
3
4
5
6
(defun flatten (w)
  (loop for a in w nconc
        (if (listp a) (flatten a) `(,a))))
 
> (flatten '(a (b (c))))
(A B C)


Вернуться к обсуждению:
Обработка списков
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
10.10.2018, 10:49

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

Перестановка списков заданных уровней, учитывая промежуточное состояние списков
Написать программу перестановки списков заданных уровней, учитывая промежуточное состояние списков....

Список списков списков чисел
Всем привет) Задание: l1 - список списков списков чисел. Необходимо получить список чисел l2,...

Обработка списков
Помогите защитить учебную практику. Заранее спасибо

Обработка списков
Помогите пожайлуста!!! Задание: 1. Создать список, состоящий из значений первых аргументов...

0
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.