Допустим определена у меня структура (defstruct foo x y z), точнее похожих структур может быть несколько. Разные характерные значения (x y z) я бы хотел хранить отдельно, например в файле (скажем, это начальные условия для системы уравнений). Вроде бы, наиболее логично хранить как assoc list: ((x . 10) (y . 20) (z 0.01)). Возникает вопрос: как проинициализировать структуру этими значениями. Недолго подумав, пришел к макросу: (defun symb (&rest args) (values (intern (apply #'mkstr args)))) (defmacro alist->struct (name alist) (with-gensyms (res) `(let ((,res (,(symb 'make '- `,name)))) ,@(loop for var in alist collect `(setf (,(symb `,name '- `,(car var)) ,res) ,(cdr var))) ,res))) что-то мне говорит, что можно было проще все сделать. Может, кто что посоветует?
Ответ на:
комментарий
от Zubok
Ответ на:
комментарий
от scabarocci
Ответ на:
комментарий
от scabarocci
Ответ на:
комментарий
от Zubok
Ответ на:
комментарий
от scabarocci
Ответ на:
комментарий
от scabarocci
Ответ на:
комментарий
от Zubok
Ответ на:
комментарий
от scabarocci
Ответ на:
комментарий
от Zubok
Ответ на:
комментарий
от Zubok
Ответ на:
комментарий
от scabarocci
Ответ на:
комментарий
от Zubok
Ответ на:
комментарий
от scabarocci
Ответ на:
комментарий
от scabarocci
Ответ на:
комментарий
от den73
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.
Похожие темы
- Форум [emacs] lambda -> cut (2011)
- Форум Сравнение производительности доступа к полям структур в Python, Common Lisp и С++ (2017)
- Форум Выясняем с помощью Emacs, какой ЯП лучше (2024)
- Форум Common lisp: графовые структуры данных (2006)
- Форум mcclim pane options и непонятный element (2019)
- Форум Common Lisp && Gamedev (2017)
- Форум Байтодрочерство common lisp (2015)
- Форум Mariadb, Common lisp (2022)
- Форум [common-lisp][realpath] (2011)
- Форум Стандарт Common Lisp (2009)