Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > LISP > помогите решить


Автор: tutochkin 27.12.2011, 17:40
Есть список и некоторый объект. Написать функцию, которая возвращает новый список, в котором объект замещает первый элемент списка, если первый элемент списка и объект является атомами, последний элемент списка - иначе.

Автор: _sg 22.2.2012, 10:57
Код

(defun substitute-first-or-last (w v)
  (if (and (atom (car w)) (atom v)) (cons v (cdr w)) (append (butlast w) (list v))))

> (substitute-first-or-last '(a b c) 'z)
(Z B C)

Автор: _sg 25.4.2014, 16:19
Код

(defun substitute-first-or-last (w v)
  (if (and (atom (car w)) (atom v))
      (cons v (cdr w))
      (nconc (butlast w) `(,v))))

> (substitute-first-or-last '(a b c) 'z)
(Z B C)

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)