Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как переделать код под mulisp 
:(
    Опции темы
ausar
Дата 4.6.2009, 08:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 127
Регистрация: 3.8.2007

Репутация: нет
Всего: нет



Привет всем есть 2 проблемки. 
1. Я пользуюсь mulisp а в нем не поддерживаются некоторые функции недоступны либо я их както не так вызываю.

Вот к примеру такой код

Код

(defun add (number)
    (intern (format nil "*~a" number)))



Здесь используется команда format которая в mulisp вызывает ругань компилятора. Можно ли както чемто её заменить?

2. Проблема вот с этой функцией. Мне необходимо переделать её так чтоб использовался лямбда вызов.

Код

(defun myfunc1 (x)
    (cond ((null x) nil)
        ((evenp (car x)) (cons (add (car x)) (myfunc (cdr x))))
        (T (cons (car x) (myfunc (cdr x))))))



Помогите а? Все по перерыл много чего узнал но вот по существу ничего нет

PM MAIL   Вверх
VH_
Дата 4.6.2009, 12:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 182
Регистрация: 31.10.2006

Репутация: 10
Всего: 11



2.
Код
(defun MYFUNC1 (x)
 (if x
  ((lambda (elem result)
    (cons
     (if (evenp elem) (add elem) elem)
     result))
   (car x)
   (MYFUNC1 (cdr x)))))

В теле определения функции (myfunc1) корректно вызывается функция (myfunc), или это неряшливость? Что делает функция (add)?

Это сообщение отредактировал(а) VH_ - 4.6.2009, 12:28
PM MAIL   Вверх
ausar
Дата 5.6.2009, 01:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 127
Регистрация: 3.8.2007

Репутация: нет
Всего: нет



В первом посте код полностью и функция адд и myfunc1.
Функция адд добавляет символ * перед значением переданным ей при вызове т.е если передать 1 то вернет *1 и т.д
Функция myfunc1 применяет функцию адд к каждому четному значению в списке переданному ей в качестве параметра.

В функции адд используется комманда формат которая почемуто в mulisp не пашет. Код писался под CL в котором естественно это работает а вот в mulisp ругается.

И вторая дилема. Необходимо переделать myfunc1 чтобы использовался лямбда вызов.


Цитата(VH_ @  4.6.2009,  12:27 Найти цитируемый пост)
В теле определения функции (myfunc1) корректно вызывается функция (myfunc), или это неряшливость? Что делает функция (add)?


Да не заметил действительно неточность.

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума LISP
Void
  • Пожалуйста, создавайте темы с содержательными названиями.
  • Lisp — это целое семейство языков. Всегда указывайте в теме используемый диалект (Common Lisp, Scheme и т.д.).
  • Уважаемые учащиеся, здесь всегда рады помочь Вам, но не делать за Вас вашу работу. У вас гораздо больше шансов получить помощь, если Вы приложите усилия и поделитесь с нами проблемами и результатами. В противном случае добро пожаловать в раздел Центр Помощи.
  • Получив ответ на интересующий Вас вопрос, не забудьте пометить его как решённый.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Void.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | LISP | Следующая тема »


 




[ Время генерации скрипта: 0.0596 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.