And one more thing to say about polymorphism.
In functional programing protocols are OO polymorphism inside out.
It is possible because FP doesn't care of state, its operates only on
its input and gives outputs (it is by definition - functional).
We are taught from very beginning how to function in a poly way.
For example on math classes we are taught how to operate on numbers
depending on its classification.

And other story about being simple and Monads.
I want to learn Monads, because I want to solve problems in
declarative way.
Unfortunately all tutorials on Monads in Clojure gives me a fish
instead of fishing rod.
Because of that now I'm learning Haskell. I believe that they are made
there right.
The funny thing is that after 5 days of reading of "Learn Haskell for
Great Good" (for 45 mins. a day) and not programming at all
(especially in Clojure),
I wanted to implement some concepts from book in Clojure and guess
what.
I found my self saying "man it is so wordy when doing it in Clojure" -
destructions, functions composition, lambda calculus, pattern matching
done via library, imperative let statement, partials.
But I think that one thing justifies it - homoiconicity and as a
result its macros.
Learn by that experience I believe that the source of inability to
learn monads is that they are made hard in Clojure in terms of Rich
speech.
Funny thing is that I believe that I already know the purpose of
monads and use cases where I could use them - I have even wrote code
in Clojure which is missing monads as glue for my declarative
specified statements in a algorithm - and believe that monads already
should glue them, but they are missing in Clojure - they are made
there via libraries and obscured by homoiconicity law.

The sad story for me is that I have waste so much time of my life in
doing some higher level concepts with wrong tools.
I waste a lot of time on bugs; documenting; and learning cutting-edge,
super hyped, students life cycle driven frameworks.

The good side of this story is that I already knew what Rich is
talking about, because learning about higher level concepts and
expressing them with right tools, gives you ability to judge other
solutions.

Well, Rich don't leave us, you have such bright look on technology
that you would easily support for example SAP with good tools to
theirs domain problems, so its matter of time when you will get
proposition to not reject.
Or you could participate in such firm on your own, all you need to do
is to make PRINCE2, ITIL; find CEO; decide what business problems you
want to solve; get some sponsors; remodel your personal life to not
neglect your family and you are another shark of the IT, of course
hire me for Great Good in your company, I can work for you on eastern
Europe.


On 21 Paź, 23:10, Michael Jaaka <michael.ja...@googlemail.com> wrote:
> Bravo, bravo! Great speech, I'm already looking for such esseys. I'm
> already learning haskell and erlang for great good, because all things
> told about lisp has been already read.
>
> I'm also designing system. Because it has some well defined
> functionality, my first tought was, hey man I will use obect oriented
> approach to creat model of that system. It is easy to document in UML
> since I only concerned on fundamental operations. Complexity of
> diffrent configurations I wanted to hide in poliformism of java oo
> programing. But i have found it corrupted, nevertheless i will still
> document it in terms of objects. OO is broken because it require from
> me to build tree structure of impl. objects depending on types of
> processing, I would make it simpler by message dispatching but, I have
> choosed protocols. Still don't know if it will work, because never
> used them before, but from read materials that is its purpose. I don't
> need state of obj. because it is about processing input and spitting
> output.
>
> Btw. from built-in data structures I'm missing trees.
>
> On 21 Paź, 22:25, daly <d...@axiom-developer.org> wrote:
>
>
>
>
>
>
>
> > On Fri, 2011-10-21 at 15:41 -0400, David Nolen wrote:
> > > Just because we have dynamic types does not give us the freedom to not
> > > consider them.
>
> > If all of these dynamics types and all of the tests "respected nil"
> > in its many meanings then
> >   (when s ...,
> >   (when (seq s)...,
> >   (when (empty? s)...,
> > would not be an issue. (when s...) would "just work".
>
> > > Clearly express a consideration about the types at play.
>
> > Clojure was supposed to transparently substitute things like sequences
> > and vectors everywhere that lisp used lists. That would be true if nil
> > was respected but is not true now and this complicates the code without
> > apparent benefit, in my opinion.
>
> > In lisp you can ask what the type is (e.g. by calling consp, vectorp,
> > etc) but these type-specific predicates are relatively rarely used.
> > In fact, when they are used then you are struggling with data-level
> > issue that could probably be abstracted away (e.g. a code smell).
>
> > Clojure is a great language but the nil handling is, in my opinion,
> > a design flaw. It forces the introduction of (empty?...) and an
> > awareness of the data types into view unnecessarily.
>
> > Tim Daly
> > Literate Software

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

Reply via email to