Hi,

I see you use the multi-arity form of * - did you know that you can use 
that with < and <= too? I think it this improves your function:

(defn params-correct-lucky-numbers
  [upto]
  (let [max (* 10 1000 1000)]
       (if (<= 1 upto max)
           true
           (do (println "The parameter upto should be between 1 and " max) 
false))))


Stig

On Friday, 20 February 2015 10:16:39 UTC, Cecil Westerhof wrote:
>
> Answering my own question. :-D
>
> 2015-02-20 11:01 GMT+01:00 Cecil Westerhof <cldwes...@gmail.com 
> <javascript:>>:
>
>> I have a function to check the parameters of another function:
>>     (defn params-correct-lucky-numbers
>>       [upto]
>>       (let [max (* 10 1000 1000)]
>>         (if (< upto 1)
>>             (do
>>                 (println "The parameter upto should at least be 1")
>>                 false)
>>           (if (> upto max)
>>               (do
>>                   (printf "The parameter upto should be below %d\n" (inc 
>> max))
>>                   false)
>>             true))))
>>
>> I am used to something like:
>> ​    Boolean params-correct-lucky-numbers(int upto) {
>>         final int MAX = 10_000_000;
>>
>>         if (upto < 1) {
>>                System.out.println("The parameter upto should at least be 
>> 1");
>>             return false;
>>         }
>>         if (upto > MAX) {
>>                System.out.printf("The parameter upto should be below 
>> %d\n", MAX + 1);
>>             return false;
>>         }
>>         return true;
>>     }
>>
>> Personally I find this clearer. In this case it is not a big deal, but 
>> when you have to check 20 parameters …
>>
>> Could the Clojure function be rewritten into something resembling the 
>> Java function? (In a functional way of-course.)​
>>
>
>
> ​I stumbled on cond, so it becomes:
> (defn params-correct-lucky-numbers
>   [upto]
>   (let [max (* 10 1000 1000)]
>    (cond
>       (< upto 1) (do (println "The parameter upto should at least be 1")
>                      false)
>       (> upto max) (do (printf "The parameter upto should be below %d\n" 
> (inc max))
>                        false)
>       :else true)))
>
> -- 
> 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.

Reply via email to