Форум программистов, компьютерный форум, киберфорум
Наши страницы
Clojure
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
olenka_ke
0 / 0 / 0
Регистрация: 26.10.2015
Сообщений: 27
1

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

30.03.2017, 19:21. Просмотров 1008. Ответов 4

Помогите определить функцию, объединяющую атомы двух списков в один ассоциативный список ((x1.y1)(x2.y2)(x3.y3) ... ...)
а) для списка из атомов
б) для списка, содержащего подсписки
0
Лучшие ответы (1)
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.03.2017, 19:21
Ответы с готовыми решениями:

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

Используя функцию Defun, определить функцию f(a x), где а-S- выражение, а х-список, состоящий из 2-3 элементов, которая заменяет на а все атомы списка
1)Используя функцию Defun, определить функцию f(a x), где а-S- выражение, а х-список, состоящий из...

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

Сформировать список списков, содержащий элементы-атомы из списка L, сгруппированные в подсписки длины n
Доброго времени суток! Нужно написать программу: L – список, элементами которого являются...

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

4
ntlinuxnt
$ su
1598 / 513 / 97
Регистрация: 18.11.2010
Сообщений: 2,805
Записей в блоге: 2
Завершенные тесты: 5
30.03.2017, 20:53 2
Clojure
Lisp
1
2
(map vector '(1 2 3) '(4 5 6))
;=>([1 4] [2 5] [3 6])
Добавлено через 1 минуту
Lisp
1
2
(map list '(1 2 3) '(4 5 6))
;=> ((1 4) (2 5) (3 6))
Или так
1
Catstail
Модератор
24711 / 12518 / 2285
Регистрация: 12.02.2012
Сообщений: 20,345
30.03.2017, 22:38 3
Лучший ответ Сообщение было отмечено olenka_ke как решение

Решение

Одноуровневые списки:

Lisp
1
2
3
4
5
6
7
8
(defun task (l1 l2) 
  (mapcar 'cons l1 l2))
 
==> TASK
 
(task '(a b c d) '(1 2 3 4))
 
==> ((A . 1) (B . 2) (C . 3) (D . 4))
Многоуровневые:

Lisp
1
2
3
4
5
6
7
8
(defun task (l1 l2)
  (mapcar 'cons (flatten l1) (flatten l2)))
 
==> TASK
 
(task '(a b (c d)) '(1 2 3 4))
 
==> ((A . 1) (B . 2) (C . 3) (D . 4))
2
olenka_ke
0 / 0 / 0
Регистрация: 26.10.2015
Сообщений: 27
01.04.2017, 20:07  [ТС] 4
благодарю!!!

Добавлено через 36 минут
как быть, если в CommonLisp возникает ошибка, что функция flatten не определена?
0
Catstail
Модератор
24711 / 12518 / 2285
Регистрация: 12.02.2012
Сообщений: 20,345
03.04.2017, 09:27 5
Цитата Сообщение от olenka_ke Посмотреть сообщение
как быть, если в CommonLisp возникает ошибка, что функция flatten не определена?
- определить:

Lisp
1
2
3
4
5
6
7
8
9
10
(defun flatten (lst)
  (cond ((null lst) nil)
        ((atom (car lst)) (cons (car lst) (flatten (cdr lst))))
        (t (append (flatten (car lst)) (flatten (cdr lst))))))
 
==> FLATTEN
 
(flatten '(a s d ((d) t (5 6)) (((y)))))
 
==> (A S D D T 5 6 Y)
1
03.04.2017, 09:27
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.04.2017, 09:27

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

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

Определить функцию, объединяющую атомы двух списков С ИСПОЛЬЗОВАНИЕМ ПАРАЛЛЕЛЬНОЙ РЕКУРСИИ
Помогите определить функцию, объединяющую атомы двух списков в один ассоциативный список...


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

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

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