2015-02-21 11:03 GMT+01:00 Ulises <ulises.cerv...@gmail.com>: > What's happening is that you have multiple optional arguments chained > together. Optional arguments are passed as a list (or seq?) of arguments, > so if you pass them down to another function that also takes optional > arguments they get wrapped in yet another list. An option to stop this is > to use apply, e.g.: > > user=> (defn foo [& stuff] stuff) > #'user/foo > user=> (defn bar [& things] (apply foo things)) > #'user/bar > user=> (bar 1 2 3) > (1 2 3) >
That works, but the problem is that the function also accepts two parameters. (I understood optional parameters wrongly.) I should probably go back to my first option of a multi-arity function. Would a be possibly to define a value that is only known in the local source file? > On Sat Feb 21 2015 at 9:58:00 AM Cecil Westerhof <cldwester...@gmail.com> > wrote: > >> I want to work with default values. For this I use: >> [& nr] >> >> This gives the value null to nr. So far so good. >> >> But I want to propagate the value, because I want to fill the default at >> a higher level. >> >> I have: >> (defn test-lucky-numbers-all >> "Test all lucky number performance" >> [& nr] >> (printf "all: %s\n\n" nr) >> (time >> (do (test-lucky-numbers-first nr) >> and: >> (defn test-lucky-numbers-first >> "Performance test of lucky numbers (first)" >> [& nr] >> (printf "first: %s\n\n" nr) >> >> When I do: >> (test-lucky-numbers-all) >> The first prints: >> all: null >> but the second prints: >> first: (nil) >> >> And when I do: >> (test-lucky-numbers-all 1) >> The first prints: >> all: (1) >> and the second prints: >> first: ((1)) >> >> What is happening here and what can I do about it? >> >> I could write a general function to translate the nil, but I was >> wondering if there is a better option. >> > -- Cecil Westerhof -- 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.