![]() |
|
|
![]()
|
|
| camakob |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 27 Регистрация: 8.1.2008 Репутация: нет Всего: нет |
Здравствуйте, товарищи !
В первый раз в жизни столкнулся с XLISP. Нашел в сети маленькую программку, запускаю на выполнение, она не работает. Подскажите в чем дело. Определите функцию, которая меняет местами первый и последний эле-менты списка, оставляя остальные на своих местах. (defun swap-first-last (list) (let ((copy (copy-list list))) (rotatef (car copy) (car (last copy))) copy)) Ругается на copy-list. |
|||
|
||||
| kosmonaFFFt |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 538 Регистрация: 14.4.2008 Где: Иннополис Репутация: нет Всего: 5 |
Видимо нету такой функции в xlisp, только что проверил на sbcl - прекрасно работает.
Я бы сделал так:
но эта функция изменяет переданный ей список... Это сообщение отредактировал(а) kosmonaFFFt - 25.2.2009, 14:01 -------------------- ![]() |
|||
|
||||
| camakob |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 27 Регистрация: 8.1.2008 Репутация: нет Всего: нет |
Спасибо за ответ, но в helpe функция есть:
Copy-list Syntax : (copy-list <list>) Copy the top level of a list. In file common.lsp <list> the list Returns : a copy of the list (new cons cells in top level) Добавлено через 12 минут и 20 секунд И если не сложно, еще одна маленькая задача: Определите функцию (summa_digits n), результатом которой является сум-ма цифр натурального числа n. Для цифр, заданных списком, я нашел программку в книге "Мир Лиспа"(Хювенен, Сеппянен), а вот для цифр натурального числа мозгов не хватает, точнее мозгов хватает, но мозги пытаются программировать как в Паскале, но как говорят в Одессе, тут две большие разницы, то есть до недавнего времени я не подозревал, что есть такие языки программирования, все с ног на голову. |
|||
|
||||
| VH_ |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 182 Регистрация: 31.10.2006 Репутация: 10 Всего: 11 |
Действительно, в Help функция (copy-list) есть, но в примечании указано: "In file common.lsp", то есть в файле common.lsp, содержащем функции, определяемые для совместимости с Common LIsp. Вероятно, этот файл следует загрузить.
«...все с ног на голову...» - скорее наоборот, с головы на ноги: исключение лишнего. |
|||
|
||||
| kosmonaFFFt |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 538 Регистрация: 14.4.2008 Где: Иннополис Репутация: нет Всего: 5 |
Писать за тебя не буду, ибо занят щас, но есть мысль -
замутить строковое представление числа например с помощью
потом нагуглить про работу со строками и создать список символов строки, выкинув оттуда десятичную запятую, если она есть, а потом с этим списком можно сделать что угодно... Создание списка символов строки можно вывести в отдельную функцию, а мб его можно и не создавать и работать со строкой как с массивом... Примерно так. З. Ы. Пока писал все это VH_ уже все сделал, причем намного лучше, чем я предлагал... Это сообщение отредактировал(а) kosmonaFFFt - 25.2.2009, 21:19 -------------------- ![]() |
|||
|
||||
| VH_ |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 182 Регистрация: 31.10.2006 Репутация: 10 Всего: 11 |
«...выкинув оттуда десятичную запятую, если она есть...» - «...сумма цифр натурального числа n...»
|
|||
|
||||
| camakob |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 27 Регистрация: 8.1.2008 Репутация: нет Всего: нет |
Спасибо за помощь товарищи, будем грызть гранит, правда еще меня ждут программирование(громко сказано) на Прологе, тоже первый раз сталкиваюсь, раньше слышал, что есть такой язык.
|
|||
|
||||
| kosmonaFFFt |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 538 Регистрация: 14.4.2008 Где: Иннополис Репутация: нет Всего: 5 |
Мда... Еще со школы натуральные с рациональными (вроде так называются) путал... -------------------- ![]() |
|||
|
||||
| _sg |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 119 Регистрация: 16.5.2007 Репутация: 2 Всего: 2 |
как ввариант:
--------------------
vk.com/ansicommonlisp |
|||
|
||||
![]()
|
| Правила форума LISP | |
|
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Void. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | LISP | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |