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

Определите функцию для преобразования списка по принципу

28.11.2015, 08:49. Показов 1308. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Определите функцию для преобразования списка по принципу:
(A B C) -> (A(B(C)))
С чего вообще начать? Как должна выглядеть эта функция? Помогите пожалуйста)
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
28.11.2015, 08:49
Ответы с готовыми решениями:

Определить функцию для преобразования списка по принципу
Определить функцию для преобразования списка по принципу : (A B C) -> (((A)B)C)

Определите функцию для преобразования списка
Определите функцию для преобразования списка по принципу: (A B C) ->(((A) B) C). (использовать...

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

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

3
4699 / 4394 / 380
Регистрация: 12.05.2012
Сообщений: 3,096
28.11.2015, 09:10 2
Lisp
1
2
3
4
5
(defun annex (w)
  (reduce #'list (butlast w) :from-end t :initial-value (last w)))
 
> (annex '(a b c d e))
(A (B (C (D (E)))))
1
Модератор
Эксперт функциональных языков программированияЭксперт Python
37299 / 20733 / 4272
Регистрация: 12.02.2012
Сообщений: 34,122
Записей в блоге: 14
28.11.2015, 22:06 3
Лучший ответ Сообщение было отмечено _sg как решение

Решение

Простая рекурсия:

Lisp
1
2
3
4
5
6
7
8
9
(defun task (lst)
  (cond ((null (cdr lst)) lst)
        (t (cons (car lst) (list (task (cdr lst)))))))
 
==> task
 
(task '(1 2 3 4))
 
==> (1 (2 (3 (4))))
1
4699 / 4394 / 380
Регистрация: 12.05.2012
Сообщений: 3,096
28.11.2015, 22:44 4
как вариант:
Lisp
1
2
3
4
5
(defun annex (w)
  (if (cdr w) (cons (car w) (list (annex (cdr w)))) w))
 
> (annex '(1 2 3 4))
(1 (2 (3 (4))))
Добавлено через 1 минуту
Lisp
1
2
3
4
5
(defun annex (w &aux (d (cdr w)))
  (if d (cons (car w) `(,(annex d))) w))
 
> (annex '(1 2 3 4))
(1 (2 (3 (4))))
1
28.11.2015, 22:44
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
28.11.2015, 22:44
Помогаю со студенческими работами здесь

Lisp! Определите функцию, удаляющую из списка все четные числа
Определите функцию, удаляющую из списка все четные числа.Решение должно быть составлено без...

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

Определите функцию (f s), которая в одноуровневом списке чисел s переставляет все отрицательные элементы в начало списка
Определите функцию (f s), которая в одноуровневом списке чисел s переставляет все отрицательные...

Создать класс, для хранения стека чисел – списка, организованного по принципу LIFO
Создать класс, для хранения стека чисел – списка, организованного по принципу LIFO (последним...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru