Форум программистов, компьютерный форум, киберфорум
Lisp
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.55/11: Рейтинг темы: голосов - 11, средняя оценка - 4.55
1 / 1 / 0
Регистрация: 02.10.2012
Сообщений: 15

Объединение списков за исключением элементов, встречающихся в обоих списках

13.11.2012, 00:46. Показов 2458. Ответов 14
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброй ночи.
Нужно определить функцию высокого порядка для создания списка, который является объединением двух списков, за исключением элементов, встречающихся в обоих списках.
Заранее спасибо.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
13.11.2012, 00:46
Ответы с готовыми решениями:

Вывод элементов, которые имеются в обоих списках
CL-USER 1 > (defun inters (x y) (remove nil (mapcar #'(lambda (z) (if (member z y) z nil)) x))) INTERS CL-USER 2 > (inters ‘(a s...

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

Сформировать список из элементов, которые встречаются в обоих исходных списках
Помогите пожалуйста! Формировать список, состоящий из элементов, которые встречаются в обоих исходных списках ?-proc(, ,L). L= ...

14
 Аватар для _sg
4710 / 4405 / 380
Регистрация: 12.05.2012
Сообщений: 3,102
13.11.2012, 08:49
Lisp
1
2
3
4
5
6
7
8
9
10
(defun our-set-difference (w v)
  (nconc (unique w v) (unique v w)))
 
(defun unique (w v)
  (cond ((null w) nil)
        ((member (car w) v) (unique (cdr w) v))
        ((cons (car w) (unique (cdr w) v)))))
 
> (our-set-difference '(a b) '(b c))
(A C)
0
1 / 1 / 0
Регистрация: 02.10.2012
Сообщений: 15
13.11.2012, 11:48  [ТС]
HomeLISP
COND: Неожиданное окончание
==> ERRSTATE
1
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38195 / 21128 / 4309
Регистрация: 12.02.2012
Сообщений: 34,736
Записей в блоге: 14
13.11.2012, 15:04
В HomeLisp нельзя опускать t в COND. Вот так работает:

Lisp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
(defun our-set-difference (w v)
  (nconc (unique w v) (unique v w)))
 
==> our-set-difference
 
(defun unique (w v)
  (cond ((null w) nil)
        ((member (car w) v) (unique (cdr w) v))
        (t (cons (car w) (unique (cdr w) v)))))
 
==> unique
 
(our-set-difference '(a b) '(b c))
 
==> (a c)
2
1 / 1 / 0
Регистрация: 02.10.2012
Сообщений: 15
16.11.2012, 09:00  [ТС]
Это, наверное, странно, но
Lisp
1
2
3
EVFUN: Не найдена функция NCONC
Функция: nconc Аргументы: ((unique w v) (unique v w))
==> ERRSTATE
0
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38195 / 21128 / 4309
Регистрация: 12.02.2012
Сообщений: 34,736
Записей в блоге: 14
16.11.2012, 09:47
Вот картинка. Возможно, у Вас не последняя версия HomeLisp
Миниатюры
Объединение списков за исключением элементов, встречающихся в обоих списках  
0
1 / 1 / 0
Регистрация: 02.10.2012
Сообщений: 15
16.11.2012, 11:48  [ТС]
Цитата Сообщение от Catstail Посмотреть сообщение
Вот картинка. Возможно, у Вас не последняя версия HomeLisp
У меня стоит та версия, которую вы мне скинули в соседней теме, вместе с ней ещё библиотека была.
0
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38195 / 21128 / 4309
Регистрация: 12.02.2012
Сообщений: 34,736
Записей в блоге: 14
16.11.2012, 11:54
Тогда выложите ваш код, я попробую запустить.
0
1 / 1 / 0
Регистрация: 02.10.2012
Сообщений: 15
16.11.2012, 12:04  [ТС]
Использую код из второго поста.
Вот то, что происходит от момента запуска HomeLiSP до попытки выполнения получившейся функции.
Lisp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
Попытка переопределить встроенную функцию
==> ERRSTATE
 
 
Файл D:\Programming\HomeLISP\Lib\lib-e.lsp загружен c ошибками
(defun our-set-difference (w v)
  (nconc (unique w v) (unique v w)))
 
==> our-set-difference
 
(defun unique (w v)
  (cond ((null w) nil)
        ((member (car w) v) (unique (cdr w) v))
        ((cons (car w) (unique (cdr w) v)))))
 
==> unique
 
(our-set-difference '(a b) '(b c))
 
EVFUN: Не найдена функция NCONC
Функция: nconc Аргументы: ((unique w v) (unique v w))
==> ERRSTATE
В первых двух строках, видимо, проблема.
0
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38195 / 21128 / 4309
Регистрация: 12.02.2012
Сообщений: 34,736
Записей в блоге: 14
16.11.2012, 13:55
Цитата Сообщение от Rdnaskel Посмотреть сообщение
Файл D:\Programming\HomeLISP\Lib\lib-e.lsp загружен c ошибками
- вместо lib-e.lsp подключите lib-i.lsp (я выкладывал), зайдите в настойки и исправьте имя библиотеки:
Миниатюры
Объединение списков за исключением элементов, встречающихся в обоих списках  
1
1 / 1 / 0
Регистрация: 02.10.2012
Сообщений: 15
20.11.2012, 11:29  [ТС]
Есть уточнение. Вызов должен осуществляться с помощью функции funcall. Какие изменения это за собой понесет? Никак не могу разобраться.
0
 Аватар для _sg
4710 / 4405 / 380
Регистрация: 12.05.2012
Сообщений: 3,102
20.11.2012, 17:18
Lisp
1
2
3
4
5
6
7
8
9
10
(defun our-set-difference (w v)
  (append (unique w v) (unique v w)))
 
(defun unique (w v)
  (cond ((null w) nil)
        ((member (car w) v) (unique (cdr w) v))
        (t (cons (car w) (unique (cdr w) v)))))
 
> (funcall #'our-set-difference '(a b) '(b c))
(A C)
1
1 / 1 / 0
Регистрация: 02.10.2012
Сообщений: 15
22.11.2012, 00:09  [ТС]
Такой вопрос: а чем, собственно, отличается просто вызов функции от её вызова через funcall?
0
 Аватар для _sg
4710 / 4405 / 380
Регистрация: 12.05.2012
Сообщений: 3,102
22.11.2012, 00:26
в приведенном примере ничем не отличается, funcall позволяет передавать функцию и вызывать ее внутри другой функции, например:
Lisp
1
2
3
4
5
(defun jack (f a b)
  (funcall f a b))
 
> (jack #'+ 2 3)
5
0
1 / 1 / 0
Регистрация: 02.10.2012
Сообщений: 15
11.12.2012, 11:59  [ТС]
А если делать funcall fun для внутренних функций?
Ну, к примеру, вот таким образом:
Lisp
1
2
3
4
(defun ins-in-list (x lst func)
  (cond ((null lst) (list x))
        ((funcall func (car lst) x) (cons (car lst) (ins-in-list x (cdr lst) func)))
        (t (cons x lst))))
для вставки элемента в список без нарушения упорядоченности
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
11.12.2012, 11:59
Помогаю со студенческими работами здесь

Сформировать список, состоящий из элементов, которые встречаются в обоих исходных списках
Помогите пожалуйста. Формировать список, состоящий из элементов, которые встречаются в обоих исходных списках >(name ‘(a s d f g h...

Найти количество элементов, встречающихся в обоих массивах
Помогите решить хотя бы какую-нибудь задачу пожалуйста можно без инклюдов и прочей фигни просто функцию и массив

Образовать третий массив из элементов, встречающихся в обоих массивах.
Двумерные массивы... Образовать третий массив из элементов, встречающихся в обоих массивах. Помогите... плиз...

Образовать третий массив из элементов, встречающихся в обоих исходных массивах...
Программа считает не правильно люди посмотрите и помогите))) Образовать третий массив из элементов, встречающихся в обоих массивах... ...

Даны 2 массива. Образовать третий массив из элементов встречающихся в обоих массивах
Даны 2 массива. Образовать третий массив из элементов встречающихся в обоих массивах Помогите пожалуйста1 Паскаль


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

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Новые блоги и статьи
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2. Данный документ берёт данные из другого нетипового документа. . .
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать программный контроль на предмет проведения документа. . .
Программный контроль заполнения реквизита табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать контроль заполнения реквизита "ПричинаСписания". . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Программное заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru