Code: Select all
(setq mytable '(
((char "a") "a: choiceA" (+ 0 101))
((char "b") "b: choiceB" (+ 0 102))
))
Or, in common, how to partially evaluate elements in a hash-table? Is there an easy to achieve this?
Code: Select all
(setq mytable '(
((char "a") "a: choiceA" (+ 0 101))
((char "b") "b: choiceB" (+ 0 102))
))
Code: Select all
(map (fn (x) (eval (first x))) mytable)
;-> (97 98)
Code: Select all
'(((char "a") "a: choiceA" (+ 0 101)) ((char "b") "b: choiceB" (+ 0 102)))
Code: Select all
'((97 "a: choiceA" (+ 0 101)) (98 "b: choiceB" (+ 0 102)))
Code: Select all
(setq a '(((+ 6 2) (a) 2) ((- 2 5) (b) 5)))
;-> (((+ 6 2) (a) 2) ((- 2 5) (b) 5))
(dolist (el a)
(setf (first (a $idx)) (eval (first el)))
)
a
;-> ((8 (a) 2) (-3 (b) 5))
Code: Select all
(setq mytable (list (list (char "a") "a: choiceA" '(+ 0 101)) (list (char "b") "b: choiceB" '(+ 0 102))))