- 【入門】Common Lisp その11【質問よろず】
232 :デフォルトの名無しさん[sage]:2015/03/17(火) 10:47:28.60 ID:Zf13xXA9 - (let ((bindings '((a 1) (b 2))) (form '(+ a b)))
(progv (mapcar #'car bindings) (mapcar #'cadr bindings) (eval form))) とかかなあ もしくはformを関数にしてしまうのがいいのかな (let ((bindings '((a 1) (b 2))) (form '(+ a b))) (let ((thunk (coerce `(lambda () ,form) 'function))) (progv (mapcar #'car bindings) (mapcar #'cadr bindings) (funcall thunk)))) bindingだけ変えて何度も走らせるなら多分効率もいいと思う(確かめたわけじゃないけど) インタプリタかなにか作ってるの? 👀
|