<br><br><div class="gmail_quote">On Wed, Jun 22, 2011 at 11:46 PM, wren ng thornton <span dir="ltr">&lt;<a href="mailto:wren@freegeek.org">wren@freegeek.org</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">One of the big benefits I see to using category theory for dealing with<br>
programming languages comes from using CT as a generalized logic for<br>
equational reasoning. In particular, making use of the ideas of (co)limits<br>
and adjunctions in order to prove that something must behave in a<br>
particular way. This requires a bit of work to contort your thinking into<br>
the patterns of CT, but it means that once you can prove that something is<br>
a foo, then all the theorems about foos will apply.<br>
<br></blockquote><div><br>Yes, I can understand that and this is exactly what I am looking for. Except that I am looking for it not to deal with programming languages but with systems (and the way we design). Of course, we can always say that each system is a language of its own (rather than *has* a language...) which is what Eric Evans coined with its &quot;Ubiquitous language&quot; term. But I find it difficult to connect that particular dots.<br>
 </div><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">As an example of this approach, see my comments in the thread about<br>
anonymous sum types. For something to be a product means that a particular<br>
diagram commutes: namely, a product is the limit of the two point category<br>
(and coproducts are the colimit). One of the many things this tells us is<br>
that if we posit that A*A ~ A in a category that &quot;has products&quot;, we must<br>
infer that the category is a meet-(pre)semilattice[1].<br>
<br></blockquote><div><br>I certainly won&#39;t argue with you on this given my limited knowledge of what a meet-(pre)semilattice could be :-) But then, if I happen to understand what it is, how could that help me design and code &quot;better&quot; systems? I have the intuition it could help me but again I do not (yet) see how. <br>
</div></div><br>Thanks a lot for your answer<br>Arnaud<br>