![]() |
|
|
![]()
|
|
| Joil |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 211 Регистрация: 24.1.2008 Репутация: нет Всего: 8 |
Есть функция:
Должна она делать следующее: если первый список (е1) является не списком или не пустым списком функция выдает nil (это работает). Если второй список пуст, программа выдает nil. Если второй список содержит в себе списки, то программа выдает nil (вот тут проблема), т. е если мы пишем (er () '((1) 2 3) '()), программа выдаtт nil, а вот если пишем (er () '(1 (2) 3) '()), то программа переходит к действию (+ 5 2). И так каждый не четный раз. Че то не пойму, где запарка (туплю). --------------------
Who had deceived thee so often as thyself? © Benjamin Franklin--------------------Always bear in mind that your own resolution to succeed is more important than any other. © Abraham Lincoln--------------------If you need it - do it, if you want it - take it! © ... |
|||
|
||||
| Aristotelb |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 55 Регистрация: 23.3.2007 Где: Саратов Репутация: 1 Всего: 5 |
Все верно работает, функция рекурсивная и на втором шаге она возвращает nil:
|
|||
|
||||
| Joil |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 211 Регистрация: 24.1.2008 Репутация: нет Всего: 8 |
Aristotelb спасибо, разобрался.
Вроде все работает, сделал вот так:
Смысл функции думаю понятен - проверка на ошибки. Т.е функйия должна быть такого формата: (er '() '(x1 ... xn) '((x11 x12)(...)(xn1 xn2))), если по другому программа выдает ERROR, но как видите я ее оформил, с помощью вспомогательных функций (labels), если кто сможет (я запарился, ниче не получается), пожалуйста помогите написать ее без вспомогательных функций (labels, flat). Это для XLisp. Это сообщение отредактировал(а) Joil - 16.3.2008, 16:13 --------------------
Who had deceived thee so often as thyself? © Benjamin Franklin--------------------Always bear in mind that your own resolution to succeed is more important than any other. © Abraham Lincoln--------------------If you need it - do it, if you want it - take it! © ... |
|||
|
||||
| Aristotelb |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 55 Регистрация: 23.3.2007 Где: Саратов Репутация: 1 Всего: 5 |
Чет непойму смысл, e1 вседга д.б nil, e2 - список атомов, а е3 - список списков атомов? и никак иначе, тогда зачем е1 вообще нужен?
|
|||
|
||||
| Joil |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 211 Регистрация: 24.1.2008 Репутация: нет Всего: 8 |
e1 вообще просто для примера надо, его потом не будет, с этой функцией и проблем нет, ее "ошибка" из одной строчки состоит.
А вообще, все правильно понял e1, всегда nil, e2 - список атомов, а e3 - список списков, в котором не больше 2-х атомов. (опаньки......, но и не меньше, а я про это забыл совсем... ща буду доделывать). --------------------
Who had deceived thee so often as thyself? © Benjamin Franklin--------------------Always bear in mind that your own resolution to succeed is more important than any other. © Abraham Lincoln--------------------If you need it - do it, if you want it - take it! © ... |
|||
|
||||
| Joil |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 211 Регистрация: 24.1.2008 Репутация: нет Всего: 8 |
Теперь вот так вот получается:
Просьба осталась: помочь в написании функции без labels. --------------------
Who had deceived thee so often as thyself? © Benjamin Franklin--------------------Always bear in mind that your own resolution to succeed is more important than any other. © Abraham Lincoln--------------------If you need it - do it, if you want it - take it! © ... |
|||
|
||||
| Aristotelb |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 55 Регистрация: 23.3.2007 Где: Саратов Репутация: 1 Всего: 5 |
P.S Делай проще |
|||
|
||||
| Joil |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 211 Регистрация: 24.1.2008 Репутация: нет Всего: 8 |
Спасибо, Aristotelb.
--------------------
Who had deceived thee so often as thyself? © Benjamin Franklin--------------------Always bear in mind that your own resolution to succeed is more important than any other. © Abraham Lincoln--------------------If you need it - do it, if you want it - take it! © ... |
|||
|
||||
![]()
|
| Правила форума LISP | |
|
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Void. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | LISP | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |