<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	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/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>David Pratten &#187; Languages</title>
	<atom:link href="http://www.davidpratten.com/tag/languages/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.davidpratten.com</link>
	<description>Interests, Ideas and Observations</description>
	<lastBuildDate>Fri, 25 Nov 2011 00:14:46 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3</generator>
		<item>
		<title>Ambi &#8211; streamlined &#8211; loses SEQ operator</title>
		<link>http://www.davidpratten.com/2009/01/29/ambi-streamlined-loses-seq-operator/</link>
		<comments>http://www.davidpratten.com/2009/01/29/ambi-streamlined-loses-seq-operator/#comments</comments>
		<pubDate>Thu, 29 Jan 2009 15:22:51 +0000</pubDate>
		<dc:creator>david</dc:creator>
				<category><![CDATA[Posts]]></category>
		<category><![CDATA[Ambi]]></category>
		<category><![CDATA[Ideas]]></category>
		<category><![CDATA[Languages]]></category>

		<guid isPermaLink="false">http://www.davidpratten.com/2009/01/29/ambi-streamlined-loses-seq-operator/</guid>
		<description><![CDATA[Ambi is proving to be a great extensible RPN calculator. Applying the &#8216;zen&#8217; of RPN to programming fun! Enjoy the new release of Ambi. This week I have discovered that the seq operator is not necessary.&#160; Initially, I thought that seq would be necessary, however it turns out that the other lambda operators are sufficient.&#160; So we now can write an interative approximator of cuberoot in this way &#8230; function; root3; &#160; dowhile; &#160;&#160;&#160; import dup $n = $guess =; &#160;&#160;&#160;&#160;$guess $prev = $n $prev sq / $prev + .5 * $guess =; &#160;&#160;&#160;&#160;$guess $prev - abs .000000001 &#62;; &#160;&#160;&#160;&#160;$guess export ; 125 root3 . Not a seq in sight!&#160;&#160; And we may rewrite the function as a recursive function this way &#8230; function; inner-root3; &#160;if; &#160;&#160;import $n = import $prev = $prev $n $prev sq / + .5 * $guess = $guess $prev - abs .000000001 &#62;; &#160;&#160;$guess $n inner-root3 $guess =; &#160;&#160;$guess export; function; root3; &#160;&#160;import dup inner-root3 export ; 100 root3 . In addition the current release adds the ++ and &#8211; increment and decrement operators.]]></description>
		<wfw:commentRss>http://www.davidpratten.com/2009/01/29/ambi-streamlined-loses-seq-operator/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Reverse Polish Notation Language</title>
		<link>http://www.davidpratten.com/2009/01/07/reverse-polish-notation-language/</link>
		<comments>http://www.davidpratten.com/2009/01/07/reverse-polish-notation-language/#comments</comments>
		<pubDate>Wed, 07 Jan 2009 12:16:37 +0000</pubDate>
		<dc:creator>david</dc:creator>
				<category><![CDATA[Ideas]]></category>
		<category><![CDATA[Languages]]></category>

		<guid isPermaLink="false">http://www.davidpratten.com/2009/01/07/reverse-polish-notation-language/</guid>
		<description><![CDATA[I love RPN calculators.&#160; My favorite is Hypatia which I use regularly for calculations.&#160; I love being able to order my calculation to avoid brackets and being able to enter a list of numbers and add them up with a single command: hy 12 23.4 43 94 3 d SUMNow I am wondering about a full computer language built from the ground up as an RPN language? A bit of googling led me to RPL or Reverse Polish Lisp which is close.&#160; I wonder if this direction has been explored in other languages. I am imagining a language where assignment is pretty straight forward (with explanatory pseudocode comment): 1 a = # a = 1 boolean expressions are just regular RPN: a 1 + b &#62; # a + 1 &#62; b and an if control structure would look like: ; bf ; bt ; a if&#160;# if a then bt else bf; the meaning of the &#8220;;&#8221; token is to push&#160;following tokens (until the next structural token) unevaluated onto the stack as a single entry. &#160;The if token evaluates the top stack entry (a) and then evaluates either the second (bt) or the third (bf). A do while loop [...]]]></description>
		<wfw:commentRss>http://www.davidpratten.com/2009/01/07/reverse-polish-notation-language/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Fun with Monad?</title>
		<link>http://www.davidpratten.com/2006/04/25/fun-with-monad/</link>
		<comments>http://www.davidpratten.com/2006/04/25/fun-with-monad/#comments</comments>
		<pubDate>Tue, 25 Apr 2006 05:10:34 +0000</pubDate>
		<dc:creator>david</dc:creator>
				<category><![CDATA[Languages]]></category>

		<guid isPermaLink="false">http://www.davidpratten.com/2006/04/25/fun-with-monad/</guid>
		<description><![CDATA[Remember command.com and .bat files? Still using them? I recently downloaded Microsoft&#8217;s new command shell (available here). The key idea seems to be to make 99% of the internals of a MS Windows based computer accessible to a command shell. Whereas the Unix tradition of shells have commands linked together by consuming and producing text &#8211; in Monad commands consume and produce objects. The objects also have the ability to convert themselves to a canonical text form which could be consumed by non-Monad aware commands. Neat idea. Special attention has been paid to security but the syntax is terrible. What kind of a language has comparision operators like a -eq b meaning &#8220;is a equal to b? Haven&#8217;t yet come across a task where learning Monad&#8217;s steep learning curve seemed to be necessary.]]></description>
		<wfw:commentRss>http://www.davidpratten.com/2006/04/25/fun-with-monad/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

