Page 1 of 1

Functions inside loops

Posted: Sat Nov 19, 2011 6:50 pm
by christian123
Hello, I am writing a code to create a tree in lisp but I am facing the following problem

Here is my code
(defun create_tree (M N D)
(if (> N M)
nil
(loop for i from 1 to D for j from 1 to D
if (< (+ i j) (+ D 1))
(create_tree M N i j)
)
))

This gives a syntax error, however when I comment the "(create_tree M N i j)" line, this works. Please let me know what the problem is...

I believe the problem is calling a function inside a loop. More generally, is it possible to create a function inside a loop?

Thank you
BS

Re: Functions inside loops

Posted: Sun Nov 20, 2011 1:32 am
by edgar-rft
The create_tree function is defined to take three arguments (M N D) but inside the loop it is called with four arguments (create_tree M N i j).

- edgar

Re: Functions inside loops

Posted: Sun Nov 20, 2011 8:11 am
by christian123
Here is my code
(defun create_tree (M N D)
(if (> N M)
nil
(loop for i from 1 to D for j from 1 to D
if (< (+ i j) (+ D 1))
(create_subtree M N i j)
)
))
Sorry for the trouble. However, I found a way around it using dotimes inside of loop.