На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
  
    > LISP , Удаление элемента
      Здравствуйте. Нужно удалить первое вхождение элемента в список.
      список а имеет структуру ((1 2 3) (3 2 1))

      Есть функция
      ExpandedWrap disabled
        (DEFUN DEL_ELEM (obj lst)
        ((NULL lst) NIL)
        ((EQL obj (CAR lst)) (CDR lst))
        (CONS (CAR lst)
        (DEL_ELEM obj (CDR lst)))
        )

      Хочу удалить 2 с первого подсписка, начиная с второго элемента

      (DELETE_ELEM 2 (cdr(car a))

      Результат
      (3) - функция удаления работает нормально

      Но список а не поменялся. Как сохранить изменения в а? Должно быть ((1 3) (3 2 1))
      Сообщение отредактировано: BODYA -
        ExpandedWrap disabled
          (setf a (delete-elem 2 (cdr (car a))))
        0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
        0 пользователей:


        Рейтинг@Mail.ru
        [ Script execution time: 0,0229 ]   [ 15 queries used ]   [ Generated: 3.05.24, 14:58 GMT ]