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.

just a basic for beginner.

Postby 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)

how do I make it become (+ 3 2)
Posts: 2
Joined: Tue Nov 26, 2013 7:20 am

Re: just a basic for beginner.

Postby 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
I'm the author of two useless languages that uses BF as target machine.
Currently I'm planning a Scheme compiler :p
Posts: 109
Joined: Mon Jul 11, 2011 2:53 pm

Return to Homework

Who is online

Users browsing this forum: No registered users and 3 guests