Форум программистов, компьютерный форум, киберфорум
Lisp
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.91/11: Рейтинг темы: голосов - 11, средняя оценка - 4.91
493 / 426 / 56
Регистрация: 29.04.2011
Сообщений: 443

[HomeLisp] Не найдена функция APPEND

15.12.2013, 00:00. Показов 2323. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Очень часто сталкивался с этой проблемой и решал переписыванием своих функций (т.е. заменой append на что-то другое). Есть какой-нибудь другой выход?
Миниатюры
[HomeLisp] Не найдена функция APPEND  
1
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
15.12.2013, 00:00
Ответы с готовыми решениями:

Функция: в неориентированном графе посчитать суммарный вес рёбер (HomeLisp)
Добрый день! Помогите, пожалуйста, написать функцию. Задача: в неориентированном графе посчитать суммарный вес рёбер. Граф:...

Не найдена функция
(defun foo (lst x n) (cond ((zerop n) (cons x lst)) (t (cons (car lst) (foo (cdr lst) x (1 - n)))))) ==> foo ...

Как в программе заменить функция append
Не могу понять, можно ли еще каким либо образом добавлять в списки какие-то значение без функции 'append' (Препод придирается, говорит мол...

11
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38161 / 21096 / 4306
Регистрация: 12.02.2012
Сообщений: 34,683
Записей в блоге: 14
15.12.2013, 09:58
Приведите код, который это вызвал!
1
493 / 426 / 56
Регистрация: 29.04.2011
Сообщений: 443
15.12.2013, 12:39  [ТС]
Цитата Сообщение от Catstail Посмотреть сообщение
Приведите код, который это вызвал!
У меня программа на 300 строк, там целый букет функций, но такая ошибка возникнет с любой функцией, в которой используется append. Приведу пример одной из функций:

Lisp
1
2
3
4
5
6
7
8
(defun ASS-LST-FULL (l &optional (i 1))
    (cond
        ((null l) nil)
        (t (append (ASS-LST (car l) i) (ASS-LST-FULL (cdr l) (+ i 1))))))
 
(ASS-LST-FULL '((0 19 23) (0 0) (0)))
 
==> (((1 1) . 0) ((1 2) . 19) ((1 3) . 23) ((2 2) . 0) ((2 3) . 0) ((3 3) . 0))
Интерпретатор ее без труда переварит, но если построить .exe файл и попробовать вызвать, будет такая ошибка.
Используемая библиотека: lib-k.lsp от 16.08.2013.

Добавлено через 9 минут
Забыл привести еще одну, но она к этой ошибке отношения не имеет:

Lisp
1
2
3
4
5
6
7
8
(defun ASS-LST (l &optional (i 1) (j i))
    (cond
        ((null l) nil)
        (t (cons (cons (cons i (list j)) (car l)) (ASS-LST (cdr l) i (+ j 1))))))
 
(ASS-LST '(0 5 9)) 
 
==> (((1 1) . 0) ((1 2) . 5) ((1 3) . 9))
1
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38161 / 21096 / 4306
Регистрация: 12.02.2012
Сообщений: 34,683
Записей в блоге: 14
15.12.2013, 13:14
route66, спасибо, все понятно... Дело в том, что exe-файл строится на основании файла homelisp.stb, а он у Вас, вероятно, старый. Сейчас выложу свежие файлы.
1
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38161 / 21096 / 4306
Регистрация: 12.02.2012
Сообщений: 34,683
Записей в блоге: 14
15.12.2013, 13:17
Вот последняя версия.
Вложения
Тип файла: zip HomeLisp1-3-28.zip (1.18 Мб, 73 просмотров)
2
493 / 426 / 56
Регистрация: 29.04.2011
Сообщений: 443
15.12.2013, 13:26  [ТС]
Цитата Сообщение от Catstail Посмотреть сообщение
Вот последняя версия.
Большое Спасибо!
0
1075 / 968 / 113
Регистрация: 04.11.2012
Сообщений: 1,013
16.12.2013, 08:54
Catstail
Новый движок заметно лучше!
Приятно пользоваться исправным инструментом.

Но вот один пример повел себя не так как ожидалось.
Lisp
1
2
3
4
5
(do ((c 10 (1- c))
     (acc 0 (+ c acc)))
    ((zerop c) acc))
 
==> 45
Сумма целых чисел от 0 до 10 => 55.
1
431 / 385 / 200
Регистрация: 12.08.2011
Сообщений: 1,610
13.02.2014, 01:43
Лучший ответ Сообщение было отмечено как решение

Решение

Цитата Сообщение от Lambdik Посмотреть сообщение
Но вот один пример повел себя не так как ожидалось.
Lisp
1
2
3
4
5
(do ((c 10 (1- c))
     (acc 0 (+ c acc)))
    ((zerop c) acc))
 
==> 45
Сумма целых чисел от 0 до 10 => 55.
То есть в HomeLisp неправильно реализован DO?
3
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38161 / 21096 / 4306
Регистрация: 12.02.2012
Сообщений: 34,683
Записей в блоге: 14
13.02.2014, 09:13
Лучший ответ Сообщение было отмечено как решение

Решение

Цитата Сообщение от Vtulhu Посмотреть сообщение
То есть в HomeLisp неправильно реализован DO?
- точнее, он не в полной мере соответствует стандарту. Нужно использовать полную нотацию. В последних версиях есть функция iterate, которая гораздо мощнее и нагляднее DO.

Добавлено через 8 минут
Хотя, похоже, в DO есть "плюшка". Спасибо, срочно исправлю.
3
1075 / 968 / 113
Регистрация: 04.11.2012
Сообщений: 1,013
13.02.2014, 15:42
Цитата Сообщение от Vtulhu Посмотреть сообщение
То есть в HomeLisp неправильно реализован DO?
Будет работать если записать так:
Lisp
1
2
3
4
5
6
(do ((c 10 (1- c))
     (acc 0))
    ((zerop c) acc)
  (setq acc (+ c acc)))
 
==> 55
Я приводил макрос, который соответствует стандарту CL. Ссылку не даю, так как считаю что цикл do не должен быть библиотечной функцией. Равно как и mapcan, every, some и др.
0
 Аватар для nullxdth
2304 / 1063 / 77
Регистрация: 12.03.2013
Сообщений: 4,987
13.02.2014, 17:37
Цитата Сообщение от Lambdik Посмотреть сообщение
так как считаю что цикл do не должен быть библиотечной функцией. Равно как и mapcan, every, some и др.
Почему?
0
1075 / 968 / 113
Регистрация: 04.11.2012
Сообщений: 1,013
13.02.2014, 17:47
Цитата Сообщение от nullxdth Посмотреть сообщение
Почему?
Потому что они относительно часто используются, лучше им быть встроенными. У встроенных ведь скорость выполнения выше. Или нет?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
13.02.2014, 17:47
Помогаю со студенческими работами здесь

String одна функция вместо erase+append
Всем привет. Поискал, вроде нет такой функции, но вдруг есть. const string::size_type position = wbuffer.find_last_of(L'\\'); ...

Функция .append и .attr, не все работает, подскажите как
есть функция $("#add").click(function() { $('#sortable').append('<a href="http://'+$('#addlink') ...

Функция не найдена
Недавно начал изучать веб-программирование. Наткнулся на проблему. Вот исходный код: <html> <head> <meta...

Не найдена функция
В строке $this->PageID = GetPageID($this->PageList, $this->Page); выдает ошибку "Fatal error: Call to undefined function...

Форматирование строк для записи в файл. Функция append() и циклы
Добрый вечер! С питоном начала разбираться совсем недавно и у меня возникла проблема при записи информации в файл. Модуль на питоне...


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка. Рецензия / Мнение/ Перевод https:/ / **********/ gallery/ thinkpad-x220-tablet-porn-gzoEAjs . . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru