<?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: Brian&#8217;s functional brain in lisp</title>
	<atom:link href="http://ryepup.unwashedmeme.com/blog/2009/10/04/brians-functional-brain-in-lisp/feed/" rel="self" type="application/rss+xml" />
	<link>http://ryepup.unwashedmeme.com/blog/2009/10/04/brians-functional-brain-in-lisp/</link>
	<description>mostly tech, mostly rants</description>
	<lastBuildDate>Tue, 07 Feb 2012 18:44:56 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
	<item>
		<title>By: ryan</title>
		<link>http://ryepup.unwashedmeme.com/blog/2009/10/04/brians-functional-brain-in-lisp/comment-page-1/#comment-32516</link>
		<dc:creator>ryan</dc:creator>
		<pubDate>Mon, 05 Oct 2009 22:01:36 +0000</pubDate>
		<guid isPermaLink="false">http://ryepup.unwashedmeme.com/blog/?p=135#comment-32516</guid>
		<description>@Christophe: ahh, ok, that makes more sense.

@Tom: Excellent point, I totally agree.  That means it&#039;s only a matter of time before clojure developers build up and share idiomatic wrapper libs.

@Lau: Interesting optimizations.  In my previous experience with using lisp and SDL, the actual drawing was always my bottleneck, so I didn&#039;t bother with profiling.  I&#039;m curious if I can add type declarations and get any noticeable improvement.

RE syntactic sugar, there are a few lisp libraries that add that sort of thing to the language, and they have mixed adoption.  I prefer adding small functions (like get-cell / set-cell) to abstract things a little and I think it makes my code more readable.  

RE STM, I vaugely recall some ant simulation example from a while back, and someone wrote it in lisp, but there seemed to be a major difference based on STM that I didn&#039;t grok at the time.  I suspected that might be the case here, too, but I didn&#039;t see any STM in use.</description>
		<content:encoded><![CDATA[<p>@Christophe: ahh, ok, that makes more sense.</p>
<p>@Tom: Excellent point, I totally agree.  That means it&#8217;s only a matter of time before clojure developers build up and share idiomatic wrapper libs.</p>
<p>@Lau: Interesting optimizations.  In my previous experience with using lisp and SDL, the actual drawing was always my bottleneck, so I didn&#8217;t bother with profiling.  I&#8217;m curious if I can add type declarations and get any noticeable improvement.</p>
<p>RE syntactic sugar, there are a few lisp libraries that add that sort of thing to the language, and they have mixed adoption.  I prefer adding small functions (like get-cell / set-cell) to abstract things a little and I think it makes my code more readable.  </p>
<p>RE STM, I vaugely recall some ant simulation example from a while back, and someone wrote it in lisp, but there seemed to be a major difference based on STM that I didn&#8217;t grok at the time.  I suspected that might be the case here, too, but I didn&#8217;t see any STM in use.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Lau Jensen</title>
		<link>http://ryepup.unwashedmeme.com/blog/2009/10/04/brians-functional-brain-in-lisp/comment-page-1/#comment-32512</link>
		<dc:creator>Lau Jensen</dc:creator>
		<pubDate>Mon, 05 Oct 2009 11:40:23 +0000</pubDate>
		<guid isPermaLink="false">http://ryepup.unwashedmeme.com/blog/?p=135#comment-32512</guid>
		<description>Hey Ryan,

Interesting translation. I&#039;ve just added a new blog post covering some optimization strategies for Brians Brain, you can have a look if you like. (http://tinyurl.com/ydhq8wf)

RE your observations:
5. It&#039;s not syntax, it&#039;s syntactic sugar so if it doesn&#039;t help you, just don&#039;t use it. 
6. STM not used at all, it&#039;s a concurrency semantic for synchronized change, see the Scala vs Clojure part 2 or Dining Philosophers post for more on this.

Best regards,
Lau</description>
		<content:encoded><![CDATA[<p>Hey Ryan,</p>
<p>Interesting translation. I&#8217;ve just added a new blog post covering some optimization strategies for Brians Brain, you can have a look if you like. (<a href="http://tinyurl.com/ydhq8wf" rel="nofollow">http://tinyurl.com/ydhq8wf</a>)</p>
<p>RE your observations:<br />
5. It&#8217;s not syntax, it&#8217;s syntactic sugar so if it doesn&#8217;t help you, just don&#8217;t use it.<br />
6. STM not used at all, it&#8217;s a concurrency semantic for synchronized change, see the Scala vs Clojure part 2 or Dining Philosophers post for more on this.</p>
<p>Best regards,<br />
Lau</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Tom Emerson</title>
		<link>http://ryepup.unwashedmeme.com/blog/2009/10/04/brians-functional-brain-in-lisp/comment-page-1/#comment-32510</link>
		<dc:creator>Tom Emerson</dc:creator>
		<pubDate>Mon, 05 Oct 2009 10:54:44 +0000</pubDate>
		<guid isPermaLink="false">http://ryepup.unwashedmeme.com/blog/?p=135#comment-32510</guid>
		<description>In response to your observations about Java interop (2 and 3): think of the interface to Java as Clojure&#039;s FFI. Whenever you interface Lisp to a non-Lisp language you end up with a capacitance mismatch that makes the interaction a bit awkward: you can say the same thing (for example) in Clozure Common Lisp&#039;s Objective-C bridge.

Interacting with the Java GUI classes is particularly ugly because these APIs are heavily object-oriented and rely on interfaces. However, once you grasp the constructs it isn&#039;t any more awkward than using CL-FFI, IMHO.

When I utilize Java libraries in my non-trivial Clojure programs I usually write an idiomatic wrapper around the &quot;low-level&quot; interface. Consider the Penumbra interface to OpenGL: http://github.com/ztellman/penumbra</description>
		<content:encoded><![CDATA[<p>In response to your observations about Java interop (2 and 3): think of the interface to Java as Clojure&#8217;s FFI. Whenever you interface Lisp to a non-Lisp language you end up with a capacitance mismatch that makes the interaction a bit awkward: you can say the same thing (for example) in Clozure Common Lisp&#8217;s Objective-C bridge.</p>
<p>Interacting with the Java GUI classes is particularly ugly because these APIs are heavily object-oriented and rely on interfaces. However, once you grasp the constructs it isn&#8217;t any more awkward than using CL-FFI, IMHO.</p>
<p>When I utilize Java libraries in my non-trivial Clojure programs I usually write an idiomatic wrapper around the &#8220;low-level&#8221; interface. Consider the Penumbra interface to OpenGL: <a href="http://github.com/ztellman/penumbra" rel="nofollow">http://github.com/ztellman/penumbra</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Christophe Grand</title>
		<link>http://ryepup.unwashedmeme.com/blog/2009/10/04/brians-functional-brain-in-lisp/comment-page-1/#comment-32508</link>
		<dc:creator>Christophe Grand</dc:creator>
		<pubDate>Mon, 05 Oct 2009 08:50:25 +0000</pubDate>
		<guid isPermaLink="false">http://ryepup.unwashedmeme.com/blog/?p=135#comment-32508</guid>
		<description>Hi Ryan,

Interesting read. On a minor point I think you misunderstood some part of the clojure code: it doesn&#039;t use a single long vector but a seq of seqs (which were initialized with a vector of vectors) -- each nested seq being a row. Thus the parallelism is per row and not per cell. (The inner map isn&#039;t replaced by pmap.)</description>
		<content:encoded><![CDATA[<p>Hi Ryan,</p>
<p>Interesting read. On a minor point I think you misunderstood some part of the clojure code: it doesn&#8217;t use a single long vector but a seq of seqs (which were initialized with a vector of vectors) &#8212; each nested seq being a row. Thus the parallelism is per row and not per cell. (The inner map isn&#8217;t replaced by pmap.)</p>
]]></content:encoded>
	</item>
</channel>
</rss>

<!-- Dynamic Page Served (once) in 4.449 seconds -->

