Mark,

Your comment "Clojure's namespaces are quite limited in ways that
frequently cause me pain" brings to mind Daniel Spiewak's talk on
modularity in functional languages: http://2013.flatmap.no/spiewak.html. It
might be interesting to Massimiliano as well.

Spiewak is actually criticizing Haskell's approach to modules and not
Clojure's but similar criticisms could apply to both. The gist of what he
says is that there are expressive advantages to Scala's decision to treat
modules as first class things.

He then goes on to cite Clojure's protocols as another example of an OO
abstraction improving modularity in an FP language, but that's not news
here.

Rob


On Thu, Dec 26, 2013 at 7:26 PM, Mark Engelberg <mark.engelb...@gmail.com>wrote:

> One reason it might not be clear what I'm driving it is that in trying to
> create a minimalist example, I used grid dimensions, and in reality, you'd
> probably know right away to put something like that in a data structure,
> and pass it around to all your functions.
>
> Try to imagine that at the beginning of your project, you really do
> believe that you're only going to ever be working with 3x4 grids, and then
> later, you realize that's not the case.
>
> In the early phase, it's very easy to construct a bunch of functions that
> all refer to those shared vars (in my example `rows` and `cols`).  Later,
> when you realize rows and cols can change, making those names parameters is
> a major overhaul to the codebase.  I believe that most Clojurians try to
> delay the refactoring by using `binding` to alter those vars.  But that's a
> fragile strategy, and eventually the code typically needs to be rewritten.
>
>
>
> On Thu, Dec 26, 2013 at 7:04 PM, Mark Engelberg 
> <mark.engelb...@gmail.com>wrote:
>
>> Does this OO pseudocode help clarify at all?
>> https://gist.github.com/Engelberg/8142000
>>
>> On Thu, Dec 26, 2013 at 6:27 PM, Stuart Halloway <
>> stuart.hallo...@gmail.com> wrote:
>>
>>> Hi Mark,
>>>
>>> I am not following your example.  Can you post (pseudocode fine) what a
>>> good OO impl would look like, and why Clojure's defrecords can't do
>>> something similar?
>>>
>>> Stu
>>>
>>>
>  --
> --
> 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.
>

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