On Thursday, April 14, 2016 at 5:58:33 PM UTC-7, Varun Kamra wrote: > Hey guys I am new to clojure. I was just experimenting by printing a pyramid > of stars 5 rows and 5 column. Here's the code: > > (defn pyramid [j i] > (if (and (= i 0) (neg? > (println "There's your pyramid")) > (if (= j 0) > (do (println) > (pyramid (- i 1) (- i 1))) > (do (print "* ") > (pyramid (- j 1) i)))) > > It's working fine till it prints the pyramid, but after printing it, it > continues printing a lot of stars and eventually fail with stack overflow. I > am guessing that a if I put a negative check I can prevent it but I wanted to > know if there's a way to return from the recursive call instead.
I understood now, it was going in the else condition of the if so here'so the modified code (defn pyramid [j i] (if (= i 0) (println "There's your pyramid")) (if (= j 0) (do (println) (pyramid (- i 1) (- i 1)))) (if (not (neg? j)) (do (print "* ") (pyramid (- j 1) i)))) But my question still stands if ther's a way to return from function. -- You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups "Clojure" group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.