| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > LISP > Помогите, пожалуйста с функционалами |
| Автор: ILCDWork 26.8.2011, 10:51 |
| Здравствуйте, помогите, пожалуйста решить следующую задачу. Как-то сложно у меня идет с функционалами. Опpеделите на языке ЛИСП функционал, вставляющий перед каждым элементом списка, обладающим определенным свойством, символ *. Проверьте работу функционала для предикатов: -неотрицательное число (при вызове используйте лямбда-функцию); -четное число. В теле функции использование операторов set и setq не допускается! Очень надеюсь на помощь. |
| Автор: newbee 26.8.2011, 11:36 | ||
Общелисп. Выбирай, какая больше нравится. |
| Автор: ILCDWork 26.8.2011, 12:50 |
| Пробую запускать на muLisp. (print (asterisk 'oddp '(1 2 3 4))) - проходит нормально. (print (asterisk (lambda (x) (>= x 0)) '(1 2 0 -5 3 -1))) Пишет: Undefined Function Break: (LAMBDA (X) (>= X 0)) Continue, Break, Abort, Top-level, Restart, System? Нажимаю C - результат выдается правильный. Смущает только наличие ошибки. |
| Автор: newbee 26.8.2011, 13:20 |
| ILCDWork, смотри в своем учебнике или лекциях, как правильно записывать лямбда-функцию. Попробую угадать: (print (asterisk #'(lambda (x) (>= x 0)) '(1 2 0 -5 3 -1))) Добавлено через 3 минуты и 10 секунд Еще нагуглилась такая запись: ((lambda (x) (>= x 0))). Если оба варианта не подойдут, читай лекции. |
| Автор: _sg 25.4.2014, 15:47 | ||
как вариант:
|