> I'm always struck by how attractive brute force solutions look in
> clojure (and lisps in general I'd say). Very concise and plain about
> what it is trying to do.

Right. The thing I've noticed in my (very) limited experience with the
language is that it forces me to think about what it is that I'm trying to
do before I write any code at all.

I need to keep in mind that *how* a piece of code arrives at a result
is significant, even though solving such problems with Clojure feels
very much like doing mathematics.


On 1 October 2013 13:07, Stan Dyck <stan.d...@gmail.com> wrote:

>
>>     On Tue, Oct 1, 2013 at 11:22 AM, David Chambers <
>> david.ch...@gmail.com <javascript:>> wrote:
>>
>>         Last night I attempted Project Euler #5 <http://projecteuler.net/
>> **problem=5 <http://projecteuler.net/problem=5>> in Clojure. The problem
>> is as follows:
>>
>>
>>          > # Smallest multiple
>>          >
>>          > 2520 is the smallest number that can be divided by each of the
>> numbers
>>          > from 1 to 10 without any remainder.
>>          >
>>          > What is the smallest positive number that is evenly divisible
>> by all of the
>>          > numbers from 1 to 20?
>>
>>         Here's my solution:
>>
>>              (defn divisible?
>>                [numer denom]
>>                (= 0 (mod numer denom)))
>>
>>              (defn smallest-multiple
>>                "Find the smallest positive number that is evenly
>> divisible by all
>>                of the numbers from 1 to n."
>>                [n]
>>                (let [s (range 1 (inc n))]
>>                  (first (filter (fn [x] (every? (partial divisible? x) s))
>>                                 (rest (range))))))
>>
>>         This gives the expected answer for /n/ of 10, but takes a long
>> time to
>>         solve /n/ of 20. I'd like to understand what make this code slow.
>> Am I
>>
>>         doing something inefficiently? What steps might I take to rework
>> this
>>         code to have it solve /n/ of 20 within a minute?
>>
>>
> I'm always struck by how attractive brute force solutions look in clojure
> (and lisps in general I'd say). Very concise and plain about what it is
> trying to do. I'm not sure if that is a good or bad thing about the
> language.
>
> StanD.
>
>
> --
> --
> 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+unsubscribe@**googlegroups.com<clojure%2bunsubscr...@googlegroups.com>
> For more options, visit this group at
> http://groups.google.com/**group/clojure?hl=en<http://groups.google.com/group/clojure?hl=en>
> --- You received this message because you are subscribed to a topic in the
> Google Groups "Clojure" group.
> To unsubscribe from this topic, visit https://groups.google.com/d/**
> topic/clojure/e3kwOl9CtX8/**unsubscribe<https://groups.google.com/d/topic/clojure/e3kwOl9CtX8/unsubscribe>
> .
> To unsubscribe from this group and all its topics, send an email to
> clojure+unsubscribe@**googlegroups.com<clojure%2bunsubscr...@googlegroups.com>
> .
> For more options, visit 
> https://groups.google.com/**groups/opt_out<https://groups.google.com/groups/opt_out>
> .
>

-- 
-- 
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/groups/opt_out.

Reply via email to