1. ВНИМАНИЕ! В течении пары дней +- будет переезд форума на более защищённый сервер. Возможны периодические перебои в работе.

помогите наставлением по лиспу

Тема в разделе "Autodesk", создана пользователем mihamster, 30 окт 2014.

  1. mihamster

    mihamster Форумчанин

    Почитал английские источники..
    Я видимо не правильно придставлял логику рест..
    Код:
    (defun func ( a &rest b ) b)
    -> (func 1 2 3 4); вернет список (2 3 4)
    Почти не отличается от непосредственной передачи списка.
    Надо будет попробовать.
    Примерно так?
    Код:
    (defun func (a b / );b - это список переменных
    (Foreach n b (setq n a))
    )
     
  2. mihamster

    mihamster Форумчанин

    Код:
    (defun f-rest (znach var /)
    (foreach n var (eval (list 'setq n znach)))
    )
    (setq var-list (car (list '(per1 per2 per3))))
    (f-rest 10 var-list)
    Так вроде работает?
    Переменные принимают заданное значение..
     
  3. Qvinto

    Qvinto Форумчанин

  4. BearDyugin

    BearDyugin Модератор Форумчанин

    Только всё равно не понятно, зачем неопределенному числу переменных нужно присвоить одно и тоже значение? Lisp это язык списков, почему-то мне кажется твою задачу можно по другому решить.
     
  5. mihamster

    mihamster Форумчанин

    Qvinto, спасибо почитаю)
    Disney, основная задача обнулить переменные, все сразу скопом.
    Мне это поможет в процессе написания функции, что бы не загонять их во 'временные переменные', что бы иметь возможность смотреть, как и в какой момент они изменяются..

    Ну и в конечном варианте оставлю эту функцию, что бы при возникновении каких то неполадок, обнулить все переменные (перезагрузить функцию)

    Конечно, это все колхоз и правильнее было бы отлавливать ошибки, контролить и обходить их.. но пока это сложновато, да и особой надобности нет, так как пишу в основном для себя.
     
  6. BearDyugin

    BearDyugin Модератор Форумчанин

    Вот, вот я по началу так же писал, а теперь мне проще заново переписать, чем в свои старые программы изменения вносить.

    Так в любом случаи все локальные переменные при перезапуске функции в ней обнуляются. Или я опять чего-то не понял?
     
  7. mihamster

    mihamster Форумчанин

    да, но во время разработки я оставляю список "локальных" пустым, только по завершению вписываю туда что нужно.

    это нужно в тех случаях, когда функция вроде работает, но не совсем так как надо... я по оставшимся переменным отыскиваю в каком именно месте пошло не так))
     
  1. Этот сайт использует файлы cookie. Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie.
    Скрыть объявление
  1. Этот сайт использует файлы cookie. Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie.
    Скрыть объявление