Page 1 of 1

just a basic for beginner.

Posted: Tue Nov 26, 2013 7:32 am
by HomuciferMadokami

Code: Select all

(defun op(n)
	(nth (mod n 3) '(+ - *))
)
(defun pre-op(n)
	(nth (mod n 4) '(sqrt sin log))
)
(defun const(n)
	(nth (mod n 11) '(0.1 1 2 3 4 5 6 7 8 9))
)
(defun main()
	((op 0) 3 2)
)
(main)
how do I make it become (+ 3 2)

Re: just a basic for beginner.

Posted: Thu Nov 28, 2013 4:07 pm
by sylwester
You use *defun* and that implies Common Lisp. Common Lisp is a LISP2 and it has separate namespace for everything in operator position and argument/variable position. To be able to use a function returned from a function or passed as argument you need to use *funcall*

Code: Select all

(defun main()
   (funcall (op 0) 3 2))
Good luck
Br,
Syl