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 <[email protected]
> <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 [email protected]
Note that posts from new members are moderated - please be patient with your
first post.
To unsubscribe from this group, send email to
[email protected]
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 [email protected].
For more options, visit https://groups.google.com/d/optout.