Форум программистов, компьютерный форум, киберфорум
Lisp
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 19.10.2016
Сообщений: 2
1

Определить функцию MERGE которая создает из двух списков цифровых атомов новый отсортированный список

20.10.2016, 00:01. Показов 618. Ответов 2
Метки нет (Все метки)

Определить функцию MERGE которая создает из двух списков цифровых атомов новый отсортированный список. Повторения пропускаются
(MERGE ’(3 4 7 8 11) ’(1 4 5 8 15)) -> (1 3 4 5 7 8 11 15)
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
20.10.2016, 00:01
Ответы с готовыми решениями:

Создать функцию, которая из списка атомов создает список с уникальными атомами
помогите с задачей на лиспе: Надо создать функцию ATOMI-UNICAT который из списка атомов будит...

написать функцию которая на основе двух списков формирует новый список в котором чередуются элементы исходных
написать функцию которая на основе двух списков формирует новый список в котором чередуются...

Определить функцию без параметров, конструирующую список, из одноуровневых списков и атомов
Определить функцию без параметров, конструирующую список, из одноуровневых списков и ...

Определить функцию, конструирующую список из одноуровневых списков атомов, которые вводятся с клавиатуры
Помогите определить функцию без параметров, конструирующую список, соответствующий номеру варианта,...

2
4509 / 4217 / 356
Регистрация: 12.05.2012
Сообщений: 2,967
20.10.2016, 10:32 2
Lisp
1
2
3
4
5
6
7
8
(defun a-merge (w v)
  (cond ((null w) v) ((null v) w)
        ((<= (car w) (car v)) (cons (car w) 
                             (a-merge (cdr w) v)))
        ((cons (car v) (a-merge w (cdr v))))))
 
> (a-merge '(1 4 5 6 12) '(2 3 4 5))
(1 2 3 4 4 5 5 6 12)
Добавлено через 18 секунд
Lisp
1
2
3
4
5
(defun a-merge (w v) 
  (merge 'list w v #'<))
 
> (a-merge '(1 4 5 6 12) '(2 3 4 5))
(1 2 3 4 4 5 5 6 12)
Добавлено через 6 минут
Lisp
1
2
3
4
5
6
7
8
(defun a-merge (w v)
  (cond ((null w) v) ((null v) w)
        ((> (car w) (car v)) (cons (car v) 
                                   (a-merge w (cdr v))))
        ((cons (car w) (a-merge (cdr w) v)))))
 
> (a-merge '(1 4 5 6 12) '(2 3 4 5))
(1 2 3 4 4 5 5 6 12)
2
Модератор
Эксперт Python
28590 / 15454 / 3053
Регистрация: 12.02.2012
Сообщений: 25,333
Записей в блоге: 4
20.10.2016, 15:31 3
А почему же только два списка? Вот слияние любого (разумного) количества списков:

Lisp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
;; Двухпутевое слияние
 
(defun merge-2 (lst1 lst2)
  (cond ((null lst1) lst2)
        ((null lst2) lst1)
        ((< (car lst1) (car lst2)) (cons (car lst1) (merge-2 (cdr lst1) lst2)))
        (t (cons (car lst2) (merge-2 lst1 (cdr lst2))))))
 
==> MERGE-2
 
(merge-2 '(1 2 3 4) '(2 3 5 6 7))
 
==> (1 2 2 3 3 4 5 6 7)
 
;; Общее слияние
 
(defun merge (&rest r)
  (cond ((null (cdr r)) (car r))
        (t (let ((tmp (merge-2 (car r) (cadr r))))
             (apply 'merge (cons tmp (cddr r)))))))    
 
==> MERGE
 
(merge '(1 2 3 4) '(2 3 4 5 6) '(-1 0 0 8))
 
==> (-1 0 0 1 2 2 3 3 4 4 5 6 8)
 
(merge '(1 2 3 4) '(2 3 4 5 6) '(-1 0 0 8) '(1 4 8 16 32 64))
 
==> (-1 0 0 1 1 2 2 3 3 4 4 4 5 6 8 8 16 32 64)
2
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
20.10.2016, 15:31

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

Определите функцию (f s), которая из списка чисел s создает новый список, меняя знак у каждого атома. Исходный список не предполагается одноуровневым
Определите функцию (f s), которая из списка чисел s создает новый список, меняя знак у каждого...

Описать функцию, которая, чередуя элементы списков, образует новый список
Описать функцию, которая, чередуя элементы списков: (a b c … ) и (1 2 3 …), образует новый список...

Описать функцию, которая создаёт новый список из каждого второго элемента исходного списка
Описать функцию, которая создаёт новый список из каждого второго элемента исходного списка

Clojure Определите функцию (f s n), которая из списка чисел s создает новый список, прибавляя к каждому атому число n
Определите функцию (f s n), которая из списка чисел s создает новый список, прибавляя к каждому...

Clojure Реализовать функцию, которая из двух списков, состоящих из чисел, строит список из парных разностей
Реализовать функцию, которая из двух списков, состоящих из чисел, строит список из парных...

Определить функцию, зависящую от списков u и v, которая вычисляет список всех элементов
Здравствуйте всем. Задали задание, выполнил, все работает нормально, но нужно с использованием...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

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