(eval `(+ . ,(list 1 2 3))) ;; should output 6 ;; throws error instead
(prog (define a (list 1 2 3)) (eval `(+ . ,a))) ;; should output 6 ;; outputs 0
Symbol* symbol; // { String* identifier }
Keyword* keyword; // { String* identifier }
Number* number; // { double value }
String* string; // has to stay a pointer
Pair* pair; // { Lisp_Object* first; Lisp_Object* rest }
Function* function; //
cFunction* cFunction; // has to stay a pointer