<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: Semantic editor combinators</title>
	<atom:link href="http://conal.net/blog/posts/semantic-editor-combinators/feed" rel="self" type="application/rss+xml" />
	<link>http://conal.net/blog/posts/semantic-editor-combinators</link>
	<description>Inspirations &#38; experiments, mainly about denotative/functional programming in Haskell</description>
	<lastBuildDate>Sat, 18 May 2013 00:33:37 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1</generator>
	<item>
		<title>By: Conal Elliott &#187; Blog Archive &#187; Adding numbers</title>
		<link>http://conal.net/blog/posts/semantic-editor-combinators/comment-page-1#comment-61769</link>
		<dc:creator>Conal Elliott &#187; Blog Archive &#187; Adding numbers</dc:creator>
		<pubDate>Mon, 25 Oct 2010 22:31:29 +0000</pubDate>
		<guid isPermaLink="false">http://conal.net/blog/?p=64#comment-61769</guid>
		<description>&lt;p&gt;[...] Elliott &#187; Blog Archive &#187; Memoizing polymorphic functions via unmemoization on Semantic editor combinatorsConal Elliott &#187; Blog Archive &#187; Memoizing polymorphic functions via unmemoization on [...]&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>[...] Elliott &raquo; Blog Archive &raquo; Memoizing polymorphic functions via unmemoization on Semantic editor combinatorsConal Elliott &raquo; Blog Archive &raquo; Memoizing polymorphic functions via unmemoization on [...]</p>]]></content:encoded>
	</item>
	<item>
		<title>By: Conal Elliott &#187; Blog Archive &#187; Memoizing polymorphic functions via unmemoization</title>
		<link>http://conal.net/blog/posts/semantic-editor-combinators/comment-page-1#comment-59272</link>
		<dc:creator>Conal Elliott &#187; Blog Archive &#187; Memoizing polymorphic functions via unmemoization</dc:creator>
		<pubDate>Sun, 03 Oct 2010 23:23:52 +0000</pubDate>
		<guid isPermaLink="false">http://conal.net/blog/?p=64#comment-59272</guid>
		<description>&lt;p&gt;[...] to make it much easier. I&#8217;ve tinkered with making this process much more elegant by applying Semantic editor combinators in their generalized form (as in the paper Tangible Functional Programming), using bijections as [...]&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>[...] to make it much easier. I&#8217;ve tinkered with making this process much more elegant by applying Semantic editor combinators in their generalized form (as in the paper Tangible Functional Programming), using bijections as [...]</p>]]></content:encoded>
	</item>
	<item>
		<title>By: Conal Elliott &#187; Blog Archive &#187; Another angle on zippers</title>
		<link>http://conal.net/blog/posts/semantic-editor-combinators/comment-page-1#comment-51325</link>
		<dc:creator>Conal Elliott &#187; Blog Archive &#187; Another angle on zippers</dc:creator>
		<pubDate>Fri, 30 Jul 2010 02:37:18 +0000</pubDate>
		<guid isPermaLink="false">http://conal.net/blog/?p=64#comment-51325</guid>
		<description>&lt;p&gt;[...] Semantic editor combinators for an explanation of (fmap.first) friends. Continuing, apply the definition of Der on [...]&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>[...] Semantic editor combinators for an explanation of (fmap.first) friends. Continuing, apply the definition of Der on [...]</p>]]></content:encoded>
	</item>
	<item>
		<title>By: Frederick Ross</title>
		<link>http://conal.net/blog/posts/semantic-editor-combinators/comment-page-1#comment-36806</link>
		<dc:creator>Frederick Ross</dc:creator>
		<pubDate>Thu, 28 Jan 2010 19:38:49 +0000</pubDate>
		<guid isPermaLink="false">http://conal.net/blog/?p=64#comment-36806</guid>
		<description>&lt;p&gt;Long, long after the fact, I&#039;ll chime in with an odd observation.  Your editor combinators in effect form a sort of groupoid (the &quot;sort of&quot; indicates that my brain is tired and uncertain rather than any mathematical fact).  If we have a group with an action on a space, and we have a representation of this action of dimension equal to that of the space, and add a single point of the space as an origin (the point left untouched by the identity), then the group plus the point represent a coordinate system.  Similarly, your editor combinators, given a root of a piece of structured data, represent a coordinate system on data.&lt;/p&gt;

&lt;p&gt;And I wrote a version of these in Erlang.  This demonstrates two points: my Erlang style is becoming peculiar, and I miss Haskell.&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>Long, long after the fact, I&#8217;ll chime in with an odd observation.  Your editor combinators in effect form a sort of groupoid (the &#8220;sort of&#8221; indicates that my brain is tired and uncertain rather than any mathematical fact).  If we have a group with an action on a space, and we have a representation of this action of dimension equal to that of the space, and add a single point of the space as an origin (the point left untouched by the identity), then the group plus the point represent a coordinate system.  Similarly, your editor combinators, given a root of a piece of structured data, represent a coordinate system on data.</p>

<p>And I wrote a version of these in Erlang.  This demonstrates two points: my Erlang style is becoming peculiar, and I miss Haskell.</p>]]></content:encoded>
	</item>
	<item>
		<title>By: Less Sugar/More Meat &#187; Blog Archive &#187; Semantic Editor Combinators - one of my favorite blog posts</title>
		<link>http://conal.net/blog/posts/semantic-editor-combinators/comment-page-1#comment-36273</link>
		<dc:creator>Less Sugar/More Meat &#187; Blog Archive &#187; Semantic Editor Combinators - one of my favorite blog posts</dc:creator>
		<pubDate>Tue, 19 Jan 2010 02:54:31 +0000</pubDate>
		<guid isPermaLink="false">http://conal.net/blog/?p=64#comment-36273</guid>
		<description>&lt;p&gt;[...] Semantic Editor Combinators - Conal Elliott [link] [...]&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>[...] Semantic Editor Combinators &#8211; Conal Elliott [link] [...]</p>]]></content:encoded>
	</item>
	<item>
		<title>By: Conal Elliott &#187; Blog Archive &#187; 3D rendering as functional reactive programming</title>
		<link>http://conal.net/blog/posts/semantic-editor-combinators/comment-page-1#comment-14053</link>
		<dc:creator>Conal Elliott &#187; Blog Archive &#187; 3D rendering as functional reactive programming</dc:creator>
		<pubDate>Mon, 12 Jan 2009 05:40:14 +0000</pubDate>
		<guid isPermaLink="false">http://conal.net/blog/?p=64#comment-14053</guid>
		<description>&lt;p&gt;[...] or, with Semantic editor combinators: [...]&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>[...] or, with Semantic editor combinators: [...]</p>]]></content:encoded>
	</item>
	<item>
		<title>By: Conal Elliott &#187; Blog Archive &#187; Another angle on functional future values</title>
		<link>http://conal.net/blog/posts/semantic-editor-combinators/comment-page-1#comment-14007</link>
		<dc:creator>Conal Elliott &#187; Blog Archive &#187; Another angle on functional future values</dc:creator>
		<pubDate>Sun, 11 Jan 2009 00:07:54 +0000</pubDate>
		<guid isPermaLink="false">http://conal.net/blog/?p=64#comment-14007</guid>
		<description>&lt;p&gt;[...] These helpers make for some easy definitions in the style of Semantic editor combinators: [...]&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>[...] These helpers make for some easy definitions in the style of Semantic editor combinators: [...]</p>]]></content:encoded>
	</item>
	<item>
		<title>By: conal</title>
		<link>http://conal.net/blog/posts/semantic-editor-combinators/comment-page-1#comment-13222</link>
		<dc:creator>conal</dc:creator>
		<pubDate>Wed, 24 Dec 2008 06:24:01 +0000</pubDate>
		<guid isPermaLink="false">http://conal.net/blog/?p=64#comment-13222</guid>
		<description>&lt;p&gt;@Martijn -- Record fields are no problem.  You can make functions analogous to &lt;code&gt;first&lt;/code&gt; and &lt;code&gt;second&lt;/code&gt; that operate on your structures, applying a given function to one field and carrying the other fields along, unchanged.&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>@Martijn &#8212; Record fields are no problem.  You can make functions analogous to <code>first</code> and <code>second</code> that operate on your structures, applying a given function to one field and carrying the other fields along, unchanged.</p>]]></content:encoded>
	</item>
	<item>
		<title>By: Martijn</title>
		<link>http://conal.net/blog/posts/semantic-editor-combinators/comment-page-1#comment-13202</link>
		<dc:creator>Martijn</dc:creator>
		<pubDate>Tue, 23 Dec 2008 21:45:32 +0000</pubDate>
		<guid isPermaLink="false">http://conal.net/blog/?p=64#comment-13202</guid>
		<description>&lt;p&gt;Can I also go into record fields with this?&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>Can I also go into record fields with this?</p>]]></content:encoded>
	</item>
	<item>
		<title>By: Conal Elliott &#187; Blog Archive &#187; Smarter termination for thread racing</title>
		<link>http://conal.net/blog/posts/semantic-editor-combinators/comment-page-1#comment-13011</link>
		<dc:creator>Conal Elliott &#187; Blog Archive &#187; Smarter termination for thread racing</dc:creator>
		<pubDate>Fri, 19 Dec 2008 08:18:51 +0000</pubDate>
		<guid isPermaLink="false">http://conal.net/blog/?p=64#comment-13011</guid>
		<description>&lt;p&gt;[...] Or, in the style of Semantic editor combinators, [...]&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>[...] Or, in the style of Semantic editor combinators, [...]</p>]]></content:encoded>
	</item>
	<item>
		<title>By: Conal Elliott &#187; Blog Archive &#187; Trimming inputs in functional reactive programming</title>
		<link>http://conal.net/blog/posts/semantic-editor-combinators/comment-page-1#comment-12541</link>
		<dc:creator>Conal Elliott &#187; Blog Archive &#187; Trimming inputs in functional reactive programming</dc:creator>
		<pubDate>Wed, 10 Dec 2008 09:00:41 +0000</pubDate>
		<guid isPermaLink="false">http://conal.net/blog/?p=64#comment-12541</guid>
		<description>&lt;p&gt;[...] In the style of Semantic editor combinators, [...]&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>[...] In the style of Semantic editor combinators, [...]</p>]]></content:encoded>
	</item>
	<item>
		<title>By: Michael</title>
		<link>http://conal.net/blog/posts/semantic-editor-combinators/comment-page-1#comment-12470</link>
		<dc:creator>Michael</dc:creator>
		<pubDate>Mon, 08 Dec 2008 21:26:12 +0000</pubDate>
		<guid isPermaLink="false">http://conal.net/blog/?p=64#comment-12470</guid>
		<description>&lt;p&gt;&quot;Less pointedly ...&quot;&lt;/p&gt;

&lt;p&gt;Hahahahahahaha!  &lt;em&gt;wipes tears away&lt;/em&gt;  Too much...&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>&#8220;Less pointedly &#8230;&#8221;</p>

<p>Hahahahahahaha!  <em>wipes tears away</em>  Too much&#8230;</p>]]></content:encoded>
	</item>
	<item>
		<title>By: Conal Elliott &#187; Blog Archive &#187; Sequences, segments, and signals</title>
		<link>http://conal.net/blog/posts/semantic-editor-combinators/comment-page-1#comment-12318</link>
		<dc:creator>Conal Elliott &#187; Blog Archive &#187; Sequences, segments, and signals</dc:creator>
		<pubDate>Fri, 05 Dec 2008 08:16:34 +0000</pubDate>
		<guid isPermaLink="false">http://conal.net/blog/?p=64#comment-12318</guid>
		<description>&lt;p&gt;[...] Or, in the style of Semantic editor combinators, [...]&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>[...] Or, in the style of Semantic editor combinators, [...]</p>]]></content:encoded>
	</item>
	<item>
		<title>By: Conal Elliott &#187; Blog Archive &#187; Prettier functions for wrapping and wrapping</title>
		<link>http://conal.net/blog/posts/semantic-editor-combinators/comment-page-1#comment-12204</link>
		<dc:creator>Conal Elliott &#187; Blog Archive &#187; Prettier functions for wrapping and wrapping</dc:creator>
		<pubDate>Tue, 02 Dec 2008 06:46:34 +0000</pubDate>
		<guid isPermaLink="false">http://conal.net/blog/?p=64#comment-12204</guid>
		<description>&lt;p&gt;[...] post Semantic editor combinators gave an example of a pattern that comes up a lot for me in Haskell programming. I want to apply [...]&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>[...] post Semantic editor combinators gave an example of a pattern that comes up a lot for me in Haskell programming. I want to apply [...]</p>]]></content:encoded>
	</item>
	<item>
		<title>By: conal</title>
		<link>http://conal.net/blog/posts/semantic-editor-combinators/comment-page-1#comment-12075</link>
		<dc:creator>conal</dc:creator>
		<pubDate>Fri, 28 Nov 2008 19:47:50 +0000</pubDate>
		<guid isPermaLink="false">http://conal.net/blog/?p=64#comment-12075</guid>
		<description>&lt;p&gt;bluestorm:&lt;/p&gt;

&lt;p&gt;Some of the examples above can be done with just &lt;code&gt;fmap&lt;/code&gt;, though not all of them.
If you try replacing all of the path components with &lt;code&gt;fmap&lt;/code&gt;, you&#039;ll soon see why.&lt;/p&gt;

&lt;p&gt;There&#039;s a deeper reason that &lt;code&gt;fmap&lt;/code&gt; is inadequate for what I&#039;m doing, which will become clear in my follow-up post.
The type of &lt;code&gt;fmap&lt;/code&gt; limits the editors being manipulated (by the editor combinators) to being &lt;em&gt;functions&lt;/em&gt;.
The &lt;code&gt;Arrow&lt;/code&gt; framework generalizes from functions to arbitrary arrows, which gave me enough flexibility to handle the examples listed at the end of the post.&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>bluestorm:</p>

<p>Some of the examples above can be done with just <code>fmap</code>, though not all of them.
If you try replacing all of the path components with <code>fmap</code>, you&#8217;ll soon see why.</p>

<p>There&#8217;s a deeper reason that <code>fmap</code> is inadequate for what I&#8217;m doing, which will become clear in my follow-up post.
The type of <code>fmap</code> limits the editors being manipulated (by the editor combinators) to being <em>functions</em>.
The <code>Arrow</code> framework generalizes from functions to arbitrary arrows, which gave me enough flexibility to handle the examples listed at the end of the post.</p>]]></content:encoded>
	</item>
</channel>
</rss>
