just a basic for beginner.

You have problems, and we're glad to hear them. Explain the problem, what you have tried, and where you got stuck.
Feel free to share a little info on yourself and the course.
Forum rules
Please respect your teacher's guidelines. Homework is a learning tool. If we just post answers, we aren't actually helping. When you post questions, be sure to show what you have tried or what you don't understand.
Post Reply
HomuciferMadokami
Posts: 2
Joined: Tue Nov 26, 2013 7:20 am

just a basic for beginner.

Post by HomuciferMadokami » Tue Nov 26, 2013 7:32 am

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)

sylwester
Posts: 133
Joined: Mon Jul 11, 2011 2:53 pm

Re: just a basic for beginner.

Post by sylwester » Thu Nov 28, 2013 4:07 pm

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
I'm the author of two useless languages that uses BF as target machine.
Currently I'm planning a Scheme compiler :p

Post Reply