2 / 2 / 1
Регистрация: 16.01.2013
Сообщений: 165
|
||||||
1 | ||||||
Замена obj1 на obj2 во всех вложениях списка25.11.2018, 22:21. Показов 1848. Ответов 7
Метки нет (Все метки)
Доброе время суток, пишу функцию замены obj1 на obj2 в списке lst.
Примерно понимаю, что от меня требуется, но вот реализовать не получается. Вот что я уже реализовал, но встретилась ошибка stack overflow
Буду благодарен вашей помощи, только пожалуйста используйте базовые функции lisp.
1
|
25.11.2018, 22:21 | |
Ответы с готовыми решениями:
7
Заменить в списке все вхождения obj1 на obj2 Замена всех элементов списка верхнего уровня их суммой Укажите верные ответы (во вложениях) найдите ошибку,задание во вложениях |
4527 / 3521 / 358
Регистрация: 12.03.2013
Сообщений: 6,038
|
|
26.11.2018, 00:27 | 2 |
Неужели? Скопируйте, пожалуйста, неработающий пример и сообщение об ошибке.
Строка 4: (x y (car lst)) — это вызов функции x (не то, что вам нужно). Пишите полностью: list, а не lst. В лиспе не сокращают так имена переменных, потому что у переменных и у функций разные пространства имён.
2
|
Фрилансер
3709 / 2082 / 567
Регистрация: 31.05.2009
Сообщений: 6,683
|
|
26.11.2018, 01:28 | 3 |
Сообщение было отмечено helter как решение
Решение
Ну так в 3 строке оно и зациклится, где
(cons x (cdr(rep1 lst x y))) Это же точное повторение исходного вызова, с теми же параметрами.. На самом деле cdr нужно сделать до вызова rep1: (cons x (rep1 (cdr lst) x y))
3
|
4699 / 4394 / 380
Регистрация: 12.05.2012
Сообщений: 3,096
|
|||||||||||
26.11.2018, 08:37 | 4 | ||||||||||
как вариант:
с вложенными:
1
|
Модератор
|
||||||
26.11.2018, 15:31 | 5 | |||||
1
|
4699 / 4394 / 380
Регистрация: 12.05.2012
Сообщений: 3,096
|
||||||||||||||||
28.11.2018, 09:18 | 6 | |||||||||||||||
2
|
2 / 2 / 1
Регистрация: 16.01.2013
Сообщений: 165
|
|
10.12.2018, 19:58 [ТС] | 7 |
Спасибо за реализацию, но по тз нельзя пользоваться if и прочими функциями, только базовыми функции типа (atom car, cdr, cond eql)
0
|
4699 / 4394 / 380
Регистрация: 12.05.2012
Сообщений: 3,096
|
||||||||||||||||
11.12.2018, 15:55 | 8 | |||||||||||||||
2
|
11.12.2018, 15:55 | |
11.12.2018, 15:55 | |
Помогаю со студенческими работами здесь
8
Как это записать в паскале? (5 файлов во вложениях) Замена всех запятых крестами, а всех точек - черепами Выполнить обработку списка. Добавить Х до всех негативных элементов списка Для одноуровневого списка строк сформировать итоговую строку сцеплением всех элементов списка Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |