(defvar *lst*)
(defvar *w-lst*)
(defvar *pos-min*)
(defvar *pos-max*)
(setq *lst* (list 45 1 2 3 4 5 6 7))
(setq *w-lst nil)
(setq *pos-min* 2)
(setq *pos-max* 3)
Как на выходе получить лист *w-lst* с элементами (1 2), сообразить не могу. Используемый язык elisp.
Получил я свой лист, сомнительным способом, может кто математически подскажет, а то может оказаться, что этот код только на этом листе и даёт правильный результат
(progn
(defvar *lst*)
(defvar *w-lst*)
(defvar *w-lst1*)
(defvar *pos-min*)
(defvar *pos-max*)
(setq *lst* (list 45 1 2 3 4 5 6 7))
(setq *w-lst* nil)
(setq *w-lst1* nil)
(setq *pos-min* 2)
(setq *pos-max* 3))
(defun list-cdr (w-lst1 lst pos-max)
(if (< 0 pos-max)
(make-list (push (car lst) w-lst1)
(setq lst (cdr lst))
(- pos-max 1))
w-lst1))
(setq *w-lst1* (nreverse
(list-cdr *w-lst1* *lst* *pos-max*)))
(setq *w-lst1* (nthcdr (- *pos-min* 1) *w-lst1*))