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.
-
HomuciferMadokami
- Posts: 2
- Joined: Tue Nov 26, 2013 7:20 am
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
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