I highly recommend this talk: https://www.youtube.com/watch?v=dzP05hEDNvs
The title is mostly about persistent data structures, but in reality the
talk serves as an excellent intro to clojure.



On Sat, Aug 23, 2014 at 11:04 AM, Cecil Westerhof <cldwester...@gmail.com>
wrote:

> 2014-08-23 7:06 GMT+02:00 Mars0i <marsh...@logical.net>:
>
> (1) Others may disagree, but ... although I love Lisps,  think that purely
>> functional programming is cool, and have come to see that there are
>> situations in which FP is *great*, I am not someone who thinks that FP
>> is always clearer (easier to understand) or as clear as imperative
>> programming.  For some jobs, one can be be made clearer than the other.
>> Maybe, in addition to providing examples in which FP is clearer, you would
>> want to provide an example in which it's less clear.  Since so many people
>> go around promoting the latest, greatest thing that will solve all of your
>> programming problems, it might build trust to show that you understand that
>> there are tradeoffs.
>>
>
> ​Can you share which things you find less clear?
>
> ​
>
>
>>
>> (2) The REPL.  Show how easy it is to stop your program and inspect data
>> structures, or to try out a new function with different arguments, or to
>> chain some functions together in an experimental way.
>>
>
> ​I love that. (Also in Scala.)
> ​
>
>
>
>> (3) pmap.  I had a program that was mapping a function over a sequence of
>> data structures to produce the next sequence of data structures.  Then I
>> added "p" to two instances of "map", and got a 2-4X speedup.  It would have
>> been more if I'd had more cores.  Then I rearranged the code a little bit
>> so that I only needed one map or pmap call, and got a little more speed.
>> Occasionally, during debugging, I replace pmap with map so that I can see
>> the sequence.  Easy peasy.  Multiprocessing in Clojure isn't always that
>> easy, but I'd guess that it's it's never that easy in other popular
>> languages.
>>
>
> ​I have to delve into that. Interesting.
>
> ​
>
>
>> (5) Which reminds me: Going back to point (1) about building trust, maybe
>> it's worth mentioning that you will need side effects some time, and
>> Clojure is going to make you mix it with laziness simply because so many of
>> the useful functions generate lazy sequences.  This can be a pain, and
>> *will* generate annoying bugs, at least at first.  But as with any
>> programming style, you have to develop good practices in order to avoid
>> gotchas.
>>
>
> ​Sadly I fell more as once in the error of not taking into account that
> certain things are lazy. :'-(
>
>
> ​Thanks. New things to think about. :-D
> ​
>
> --
> 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.
>



-- 
“One of the main causes of the fall of the Roman Empire was that–lacking
zero–they had no way to indicate successful termination of their C
programs.”
(Robert Firth)

-- 
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