<story><title>Thinking in Clojure for Java Programmers</title><url>http://blog.factual.com/devblog/aaron/thinking-in-clojure-for-java-programmers-part-1-—-a-gentle-intro/</url><text></text></story><parent_chain><item><author>ShardPhoenix</author><text>Bullshit. Everyone is taught the first way, everyone writes the first way by hand. The first way is the &quot;human&quot; way. The second way is the obscure theory-of-computation way. Your post seems like pure rationalization. Even if it applies to you, I can&apos;t see how you can claim with a straight face that prefix math is more &quot;human&quot; in general.</text></item><item><author>brehaut</author><text>That holds water only at the most sugary syntactic level.&lt;p&gt;At the most simplistic semantic level a binary addition operator is a simple mapping of what the machine wants to do (take 2 registers and put their sum in an accumulator register).&lt;p&gt;Lets expand that simple piece of code. Now you have more than 2 numbers to sum:&lt;p&gt;&lt;pre&gt;&lt;code&gt;   2 + 3 + 40
&lt;/code&gt;&lt;/pre&gt;
you have been forced to encode both stages of summing the first pair of numbers and then the result and the third value. Contrast this with a lisp&lt;p&gt;&lt;pre&gt;&lt;code&gt;  (+ 2 3 40)
&lt;/code&gt;&lt;/pre&gt;
Lisp has takes care of all of the details for me; i merely need to supply the operands and the language worries about mapping it to the underlying operations as needed.&lt;p&gt;Clearly, here is a situation where lisp notation elevates me from having to think about the machine.&lt;p&gt;Touche, indeed.</text></item><item><author>peterlada</author><text>2 + 3, touche :)</text></item><item><author>brehaut</author><text>Please justify your claim: In what way is Lisp (in contrast to Python) better suited for computers than for humans?</text></item><item><author>peterlada</author><text>I love functional programming. At least the functional parts of Python. 
However, Lisp seems better suited for computers than for humans.&lt;p&gt;Which is probably a side effect of having been created when 64kB was a decent memory size.</text></item></parent_chain><comment><author>awj</author><text>Math notation has gone through a decent bit of change over time, and has proven amenable to change to suit the needs of specific environments. Lisps don&apos;t force you to use &quot;(+ 2 3 4)&quot; instead of &quot;2 + 3 + 4&quot; to be contrary, it&apos;s there to preserve a cornerstone of the language family: the power gained by easy manipulation of syntax trees.&lt;p&gt;Also, math notation is pretty much the &lt;i&gt;only&lt;/i&gt; bad syntax example when comparing with other programming languages. It becomes &lt;i&gt;literally&lt;/i&gt; the only example when you leave hard asceticism and take the approach that Clojure does of providing literals for vectors, maps, and sets.&lt;p&gt;So, yeah, maybe dig a little deeper next time instead of dismissing tools out of hand? Many programs never directly perform arithmetic, are Lisp dialects unsuitable for those as well?</text></comment>
<story><title>Thinking in Clojure for Java Programmers</title><url>http://blog.factual.com/devblog/aaron/thinking-in-clojure-for-java-programmers-part-1-—-a-gentle-intro/</url><text></text></story><parent_chain><item><author>ShardPhoenix</author><text>Bullshit. Everyone is taught the first way, everyone writes the first way by hand. The first way is the &quot;human&quot; way. The second way is the obscure theory-of-computation way. Your post seems like pure rationalization. Even if it applies to you, I can&apos;t see how you can claim with a straight face that prefix math is more &quot;human&quot; in general.</text></item><item><author>brehaut</author><text>That holds water only at the most sugary syntactic level.&lt;p&gt;At the most simplistic semantic level a binary addition operator is a simple mapping of what the machine wants to do (take 2 registers and put their sum in an accumulator register).&lt;p&gt;Lets expand that simple piece of code. Now you have more than 2 numbers to sum:&lt;p&gt;&lt;pre&gt;&lt;code&gt;   2 + 3 + 40
&lt;/code&gt;&lt;/pre&gt;
you have been forced to encode both stages of summing the first pair of numbers and then the result and the third value. Contrast this with a lisp&lt;p&gt;&lt;pre&gt;&lt;code&gt;  (+ 2 3 40)
&lt;/code&gt;&lt;/pre&gt;
Lisp has takes care of all of the details for me; i merely need to supply the operands and the language worries about mapping it to the underlying operations as needed.&lt;p&gt;Clearly, here is a situation where lisp notation elevates me from having to think about the machine.&lt;p&gt;Touche, indeed.</text></item><item><author>peterlada</author><text>2 + 3, touche :)</text></item><item><author>brehaut</author><text>Please justify your claim: In what way is Lisp (in contrast to Python) better suited for computers than for humans?</text></item><item><author>peterlada</author><text>I love functional programming. At least the functional parts of Python. 
However, Lisp seems better suited for computers than for humans.&lt;p&gt;Which is probably a side effect of having been created when 64kB was a decent memory size.</text></item></parent_chain><comment><author>technomancy</author><text>&amp;#62; Everyone is taught the first way&lt;p&gt;Obviously neither one is more &quot;human&quot;; humans don&apos;t know the first thing about math until they&apos;re educated. This has everything to do with what&apos;s familiar and nothing to do with what&apos;s &quot;natural&quot; to the human mind.</text></comment>