<?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: Beginning Factor &#8211; Introduction</title>
	<atom:link href="http://elasticdog.com/2008/11/beginning-factor-introduction/feed/" rel="self" type="application/rss+xml" />
	<link>http://elasticdog.com/2008/11/beginning-factor-introduction/</link>
	<description>Imagine Something Clever</description>
	<lastBuildDate>Mon, 01 Mar 2010 06:35:14 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: kib2</title>
		<link>http://elasticdog.com/2008/11/beginning-factor-introduction/comment-page-1/#comment-58337</link>
		<dc:creator>kib2</dc:creator>
		<pubDate>Thu, 04 Dec 2008 21:18:00 +0000</pubDate>
		<guid isPermaLink="false">http://elasticdog.com/?p=29#comment-58337</guid>
		<description>Thanks a lot for your Factor tutorials , that&#039;s the only thing this language missed : some readable documentation.</description>
		<content:encoded><![CDATA[<p>Thanks a lot for your Factor tutorials , that&#8217;s the only thing this language missed : some readable documentation.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Aaron Schaefer</title>
		<link>http://elasticdog.com/2008/11/beginning-factor-introduction/comment-page-1/#comment-58189</link>
		<dc:creator>Aaron Schaefer</dc:creator>
		<pubDate>Mon, 01 Dec 2008 22:09:15 +0000</pubDate>
		<guid isPermaLink="false">http://elasticdog.com/?p=29#comment-58189</guid>
		<description>&lt;blockquote&gt;&quot;Maybe thereâ€™s a better example of the compile time check of the stack effect declaration? Or am I missing something?&quot;&lt;br /&gt; -- Jon&lt;/blockquote&gt;

Yeah, sorry about that. When developing in Factor, it&#039;s standard practice to use an external text editor, and hit F2 in the listener to reload your vocabulary (a collection of words in a file) whenever you make changes. I plan on discussing that process in more detail later, but forgot about the differences when pasting code directly in the listener.

Just follow what Slava says...pretty much always :-)</description>
		<content:encoded><![CDATA[<blockquote><p>&#8220;Maybe thereâ€™s a better example of the compile time check of the stack effect declaration? Or am I missing something?&#8221;<br /> &#8212; Jon</p></blockquote>
<p>Yeah, sorry about that. When developing in Factor, it&#8217;s standard practice to use an external text editor, and hit F2 in the listener to reload your vocabulary (a collection of words in a file) whenever you make changes. I plan on discussing that process in more detail later, but forgot about the differences when pasting code directly in the listener.</p>
<p>Just follow what Slava says&#8230;pretty much always <img src='http://elasticdog.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Slava Pestov</title>
		<link>http://elasticdog.com/2008/11/beginning-factor-introduction/comment-page-1/#comment-58188</link>
		<dc:creator>Slava Pestov</dc:creator>
		<pubDate>Mon, 01 Dec 2008 21:26:08 +0000</pubDate>
		<guid isPermaLink="false">http://elasticdog.com/?p=29#comment-58188</guid>
		<description>Jon: you won&#039;t see inference errors for words you enter in the listener. Words entered in a source file will display compile errors when you load the source file.

However, even for words defined in the listener, you can still do: 
&lt;pre&gt;&lt;code&gt;[ plus-two ] infer.&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;

which in your case would display an error about the stack declaration mismatch.</description>
		<content:encoded><![CDATA[<p>Jon: you won&#8217;t see inference errors for words you enter in the listener. Words entered in a source file will display compile errors when you load the source file.</p>
<p>However, even for words defined in the listener, you can still do: </p>
<pre><code>[ plus-two ] infer.</code></pre>
<p></p>
<p>which in your case would display an error about the stack declaration mismatch.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jon</title>
		<link>http://elasticdog.com/2008/11/beginning-factor-introduction/comment-page-1/#comment-58186</link>
		<dc:creator>Jon</dc:creator>
		<pubDate>Mon, 01 Dec 2008 20:44:50 +0000</pubDate>
		<guid isPermaLink="false">http://elasticdog.com/?p=29#comment-58186</guid>
		<description>Hi Aaron,
You said &quot;Yes, there is a checkâ€¦if what the compiler infers does not match the stack effect declaration, it will generate an error.&quot;
I just tried that. I entered this:
&lt;pre&gt;&lt;code&gt;: plus-two ( -- y ) 2 + ;&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;

... and I got no warning. When I did &quot;\ plus-two see&quot;, I got the same thing back. And doing &quot;4 plus-two&quot; I got 6. Maybe there&#039;s a better example of the compile time check of the stack effect declaration? Or am I missing something?</description>
		<content:encoded><![CDATA[<p>Hi Aaron,<br />
You said &#8220;Yes, there is a checkâ€¦if what the compiler infers does not match the stack effect declaration, it will generate an error.&#8221;<br />
I just tried that. I entered this:</p>
<pre><code>: plus-two ( -- y ) 2 + ;</code></pre>
<p></p>
<p>&#8230; and I got no warning. When I did &#8220;\ plus-two see&#8221;, I got the same thing back. And doing &#8220;4 plus-two&#8221; I got 6. Maybe there&#8217;s a better example of the compile time check of the stack effect declaration? Or am I missing something?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Aaron Schaefer</title>
		<link>http://elasticdog.com/2008/11/beginning-factor-introduction/comment-page-1/#comment-58173</link>
		<dc:creator>Aaron Schaefer</dc:creator>
		<pubDate>Mon, 01 Dec 2008 14:26:00 +0000</pubDate>
		<guid isPermaLink="false">http://elasticdog.com/?p=29#comment-58173</guid>
		<description>&lt;blockquote&gt;&quot;Is there a compile time check whether the word stack effects declaration matches the code?&quot; &lt;br /&gt;-- wolf550e&lt;/blockquote&gt;

Yes, there is a check...if what the compiler infers does not match the stack effect declaration, it will generate an error. If we had left off the &quot;x&quot; in our declaration of &lt;code&gt;plus-two&lt;/code&gt;, the error generated would look something like this:

&lt;pre&gt;&lt;code&gt;In word: plus-two
Stack effects of the word plus-two do not match.
Inferred: (( object -- object ))
Declared: (( -- y ))
&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;

To read more about stack effect inference, type &lt;code&gt;&quot;inference&quot; help&lt;/code&gt; into the listener...</description>
		<content:encoded><![CDATA[<blockquote><p>&#8220;Is there a compile time check whether the word stack effects declaration matches the code?&#8221; <br />&#8211; wolf550e</p></blockquote>
<p>Yes, there is a check&#8230;if what the compiler infers does not match the stack effect declaration, it will generate an error. If we had left off the &#8220;x&#8221; in our declaration of <code>plus-two</code>, the error generated would look something like this:</p>
<pre><code>In word: plus-two
Stack effects of the word plus-two do not match.
Inferred: (( object -- object ))
Declared: (( -- y ))
</code></pre>
<p></p>
<p>To read more about stack effect inference, type <code>"inference" help</code> into the listener&#8230;</p>
]]></content:encoded>
	</item>
</channel>
</rss>
