<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE rss [<!ENTITY % HTMLlat1 PUBLIC "-//W3C//ENTITIES Latin 1 for XHTML//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml-lat1.ent">]>
<rss version="0.92" xml:base="http://lambda-the-ultimate.org">
<channel>
 <title>Lambda the Ultimate - Comments</title>
 <link>http://lambda-the-ultimate.org</link>
 <description>Comments</description>
 <language>en</language>
<item>
 <title>There might be a certain</title>
 <link>http://lambda-the-ultimate.org/node/112#comment-69225</link>
 <description>There is a certain composting of logic languages. I encountered &quot;logic engines&quot; two times in my career. 

In one case it was about filling action tables within an Excel sheet that was compiled via VB into a &quot;fact base&quot; of some test tool. Those facts were then used by the tool to verify response data of a system-under-test. Half of the team used it, the other half tried to work around it. 

The other time it was a simple &quot;reasoning engine&quot; which was fed with facts written in an &quot;in-house&quot; XML language designed by some guy who left the company. It was very semantic web or so - I don&#039;t remember exactly the rhetoric packaging used to sell it to the engineers. There was one fan in the team who kept it alive.

In neither case it was used for anything sophisticated like solving NP complete problems declaratively, but even the little it could do, was done badly or cumbersome. 

So the experience curve goes like this: very sophisticated rule based engines usable by only a minority of trained expert programmers are replaced by dumbed down versions of such engines which are meant to be used by average programmers for occasional use which gets replaced by nothing like that at all. The final backtracking step was to dump the backtracking engines into the dustbins and track back to a mixture of procedural / OOP approaches. 

This could be seen as an entirely negative result but there was at least a desire for declarative programming methodologies and moving from step 1 to step 2 and becoming &quot;mainstream&quot; if only within an organization, something which is quite a lot. </description>
 <pubDate>Sat, 11 Feb 2012 03:39:05 -0500</pubDate>
 <author>Kay Schluehr</author>
 <category>Embedding Prolog in Haskell</category>
</item>
<item>
 <title>The last lecture to my first</title>
 <link>http://lambda-the-ultimate.org/node/4447#comment-69224</link>
 <description>The last lecture to my first year students (Informatics 1 Functional Programming---taught in Haskell) covers Boole, Frege, Church, Gentzen, and Curry-Howard.  Slides are &lt;a href=&quot;http://www.inf.ed.ac.uk/teaching/courses/inf1/fp/lectures/2010/lect20.pdf&quot;&gt;here&lt;/a&gt;.</description>
 <pubDate>Fri, 10 Feb 2012 17:36:38 -0500</pubDate>
 <author>Philip Wadler</author>
 <category>Teaching challenge: culturally enriching formulae-as-types</category>
</item>
<item>
 <title>Nice example!By</title>
 <link>http://lambda-the-ultimate.org/node/4443#comment-69223</link>
 <description>Nice example!

By coincidence, John Baez just posted an &lt;a href=&quot;http://johncarlosbaez.wordpress.com/2012/02/10/quantropy-part-2/&quot;&gt;article&lt;/a&gt; in which he discusses why you don&#039;t want to eliminate dimensions even though you can. Much the same argument applies to types.</description>
 <pubDate>Fri, 10 Feb 2012 12:55:49 -0500</pubDate>
 <author>sigfpe</author>
 <category>The Algebra of Data, and the Calculus of Mutation</category>
</item>
<item>
 <title>Sure, but...</title>
 <link>http://lambda-the-ultimate.org/node/4446#comment-69222</link>
 <description>Sure, but while map is usually pretty intuitive, &#039;flatten&#039; is often non-obvious. But I do see your point. I guess I don&#039;t know whether it&#039;s easier to understand or not.

In the case of the IO monad, at least, I think bind is a lot more intuitive than join. I guess I feel it&#039;s easier to see how bind generalizes beyond &quot;collections&quot;, while &quot;join&quot; (and thus &quot;flatMap&quot;) has a very collection-centric intuition. But, point taken... maybe it&#039;s just me.
</description>
 <pubDate>Fri, 10 Feb 2012 12:22:44 -0500</pubDate>
 <author>Matt Hellige</author>
 <category>Effective Scala</category>
</item>
<item>
 <title>The for comprehension acts</title>
 <link>http://lambda-the-ultimate.org/node/4446#comment-69221</link>
 <description>The for comprehension acts as sugar for a chain of flatMap, filter and map calls, so no, there isn&#039;t.</description>
 <pubDate>Fri, 10 Feb 2012 12:21:53 -0500</pubDate>
 <author>AlecZorab</author>
 <category>Effective Scala</category>
</item>
<item>
 <title>Actually you can define map</title>
 <link>http://lambda-the-ultimate.org/node/4446#comment-69220</link>
 <description>Actually you can define map and flatten for any monad. Whether that is more easy to understand than bind I leave to the psychologists.</description>
 <pubDate>Fri, 10 Feb 2012 11:30:10 -0500</pubDate>
 <author>Jules Jacobs</author>
 <category>Effective Scala</category>
</item>
<item>
 <title>Strange advocacy</title>
 <link>http://lambda-the-ultimate.org/node/4446#comment-69219</link>
 <description>Strange advocacy: each example with &quot;flatMap&quot; was immediately followed by the same example with &quot;for&quot; instead, and IMHO the example with &quot;for&quot; was more readable.
Is-there some use of &quot;flatMap&quot; where &quot;for&quot; cannot be used?</description>
 <pubDate>Fri, 10 Feb 2012 10:55:33 -0500</pubDate>
 <author>renox</author>
 <category>Effective Scala</category>
</item>
<item>
 <title>Except it&#039;s not true</title>
 <link>http://lambda-the-ultimate.org/node/4446#comment-69218</link>
 <description>&quot;Map, then flatten&quot; is not a good description of the bind operation for all monads (although I agree it&#039;s a nice intuitive place to start). So if you rename bind to flatMap, you may end up with a bunch of things called flatMap that seem to have extremely obscure semantics.

</description>
 <pubDate>Fri, 10 Feb 2012 09:33:51 -0500</pubDate>
 <author>Matt Hellige</author>
 <category>Effective Scala</category>
</item>
<item>
 <title>flatMap</title>
 <link>http://lambda-the-ultimate.org/node/4446#comment-69217</link>
 <description>I&#039;ve found that explaining it to people as mapping and then flattening the nested structure is enormously easier to understand what&#039;s actually happening. I think that to someone seeing them for the first time, &quot;bind&quot; is about as useful as &quot;monad&quot; in explaining the structure of the computation.</description>
 <pubDate>Fri, 10 Feb 2012 07:02:12 -0500</pubDate>
 <author>AlecZorab</author>
 <category>Effective Scala</category>
</item>
<item>
 <title>Too heavyweight</title>
 <link>http://lambda-the-ultimate.org/node/4447#comment-69216</link>
 <description>This is meant to be an intro lecture in a course to students who have met the simply-typed and polymorphic lambda calculus, but not yet dependent types.

As a general point, this is the right way around.  Dependent type theory features complex inference rules that are much easier to grasp if you understand the formulae-as-types correspondence.

Adam Chlipala&#039;s book was mentioned in the answers to a relevant Cstheory question, &lt;a href=&quot;http://cstheory.stackexchange.com/q/6136/270&quot; &gt;What is the most intuitive dependent type theory I could learn?&lt;/a&gt;</description>
 <pubDate>Fri, 10 Feb 2012 05:00:53 -0500</pubDate>
 <author>Charles Stewart</author>
 <category>Teaching challenge: culturally enriching formulae-as-types</category>
</item>
<item>
 <title>FWIW</title>
 <link>http://lambda-the-ultimate.org/node/4447#comment-69215</link>
 <description>Adam was hugely patient with me when I sat next to him at the POPL &#039;08 Coq tutorial. I&#039;m currently working through his CPDT, and am enjoying it tremendously.</description>
 <pubDate>Thu, 09 Feb 2012 17:50:31 -0500</pubDate>
 <author>Paul Snively</author>
 <category>Teaching challenge: culturally enriching formulae-as-types</category>
</item>
<item>
 <title>Chorded Keyboard</title>
 <link>http://lambda-the-ultimate.org/node/4257#comment-69214</link>
 <description>Douglas Engelbart&#039;s &lt;a href=&quot;http://labs.teague.com/?p=1451&quot;&gt;chorded keyboard via multi-touch&lt;/a&gt; might be an interesting possibility for the cases where developers need text.</description>
 <pubDate>Thu, 09 Feb 2012 15:33:01 -0500</pubDate>
 <author>dmbarbour</author>
 <category>Coding at the Speed of Touch</category>
</item>
<item>
 <title>Adam Chlipala</title>
 <link>http://lambda-the-ultimate.org/node/4447#comment-69213</link>
 <description>&lt;a href=&quot;http://adam.chlipala.net/&quot;&gt;Adam Chlipala&lt;/a&gt; is &lt;a href=&quot;http://adam.chlipala.net/itp/&quot;&gt;teaching courses&lt;/a&gt; and &lt;a href=&quot;http://adam.chlipala.net/cpdt/&quot;&gt;writing a textbook&lt;/a&gt; in this vein. Follow the links, maybe approach the man for advice.

</description>
 <pubDate>Thu, 09 Feb 2012 14:53:43 -0500</pubDate>
 <author>dmbarbour</author>
 <category>Teaching challenge: culturally enriching formulae-as-types</category>
</item>
<item>
 <title>No Worries</title>
 <link>http://lambda-the-ultimate.org/node/4440#comment-69212</link>
 <description>It was actually a helpful reminder that those of us who have read TAPL, use Coq, and follow mechanized metatheory developments religiously are an even rarer breed than I had realized. :-)</description>
 <pubDate>Thu, 09 Feb 2012 13:04:32 -0500</pubDate>
 <author>Paul Snively</author>
 <category>Vellvm: Formalizing the LLVM Intermediate Representation for Verified Program Transformations</category>
</item>
<item>
 <title>Done</title>
 <link>http://lambda-the-ultimate.org/node/4440#comment-69211</link>
 <description>Thanks!</description>
 <pubDate>Thu, 09 Feb 2012 13:03:28 -0500</pubDate>
 <author>Paul Snively</author>
 <category>Vellvm: Formalizing the LLVM Intermediate Representation for Verified Program Transformations</category>
</item>
</channel>
</rss>

