<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
	<channel>
		<title>gdp's Comments</title>
		<language>en-us</language>
		<link>https://www.intensedebate.com/users/657246</link>
		<description>Comments by larrytheliquid</description>
<item>
<title>larr&#x3bb;theliquid -&gt; Lemma the Ultimate : Intro to Proofs-as-Programs</title>
<link>http://lemmatheultimate.com/2009/10/24/intro-to-proofs-as-programs/#IDComment40602290</link>
<description>Ah yes, that makes sense. Thank you for investigating and clarifying that. +1 </description>
<pubDate>Sun, 25 Oct 2009 18:58:48 +0000</pubDate>
<guid>http://lemmatheultimate.com/2009/10/24/intro-to-proofs-as-programs/#IDComment40602290</guid>
</item><item>
<title>larr&#x3bb;theliquid -&gt; Lemma the Ultimate : Intro to Proofs-as-Programs</title>
<link>http://lemmatheultimate.com/2009/10/24/intro-to-proofs-as-programs/#IDComment40599910</link>
<description>&lt;a href=&quot;http:\/\/wiki.portal.chalmers.se\/agda\/agda.php\?n=ReferenceManual.TerminationChecker&quot; target=&quot;_blank&quot;&gt;Agda tracks the dependencies&lt;/a&gt; between all function parameters and the recursive calls in the body, and if the resulting dependencies are of decreasing order then the function will terminate. It should be noted though that the termination checker can find false positives, in which case you must fiddle with moving things around a bit to get the termination to check.  </description>
<pubDate>Sun, 25 Oct 2009 18:31:45 +0000</pubDate>
<guid>http://lemmatheultimate.com/2009/10/24/intro-to-proofs-as-programs/#IDComment40599910</guid>
</item><item>
<title>larr&#x3bb;theliquid -&gt; Lemma the Ultimate : Intro to Proofs-as-Programs</title>
<link>http://lemmatheultimate.com/2009/10/24/intro-to-proofs-as-programs/#IDComment40584353</link>
<description>You&amp;#039;re right that I did not cover Agda&amp;#039;s requirement of termination checking. More specifically, the rule is that recursive calls must use inputs that are structurally smaller than the inputs of the original function. However, this requirement is not present in all proof languages. In Guru you can still prove things such as the reflexive property even about functions that never terminate (see page 28 of the &lt;a href=&quot;http:\/\/guru-lang.googlecode.com\/svn\/branches\/1.0\/doc\/book.pdf&quot; target=&quot;_blank&quot;&gt;Guru book&lt;/a&gt;).  Additionally, once totality has been proven, you can register the function as total which gives you access to more things you can prove about it and with it that are restricted by default (page 50). </description>
<pubDate>Sun, 25 Oct 2009 15:58:47 +0000</pubDate>
<guid>http://lemmatheultimate.com/2009/10/24/intro-to-proofs-as-programs/#IDComment40584353</guid>
</item><item>
<title>larr&#x3bb;theliquid -&gt; Lemma the Ultimate : Intro to Proofs-as-Programs</title>
<link>http://lemmatheultimate.com/2009/10/24/intro-to-proofs-as-programs/#IDComment40583275</link>
<description>Woops, fixed that, thanks =) </description>
<pubDate>Sun, 25 Oct 2009 15:46:42 +0000</pubDate>
<guid>http://lemmatheultimate.com/2009/10/24/intro-to-proofs-as-programs/#IDComment40583275</guid>
</item><item>
<title>larr&#x3bb;theliquid -&gt; Lemma the Ultimate : Roadmap</title>
<link>http://lemmatheultimate.com/2009/10/14/roadmap/#IDComment38734282</link>
<description>Thanks for the clarifications, greatly appreciated! </description>
<pubDate>Wed, 14 Oct 2009 19:21:35 +0000</pubDate>
<guid>http://lemmatheultimate.com/2009/10/14/roadmap/#IDComment38734282</guid>
</item><item>
<title>Union Station : Cucumber: Step Argument Transforms</title>
<link>http://www.engineyard.com/blog/2009/cucumber-step-argument-transforms/#IDComment35581413</link>
<description>Cucumber might not have your situation built in, but Transform&amp;#039;s are very flexible! I think I understand what you need better now, check out this implementation of your TokenTransform:        &lt;a href=&quot;http://gist.github.com/191691&quot; target=&quot;_blank&quot;&gt;http://gist.github.com/191691&lt;/a&gt; </description>
<pubDate>Wed, 23 Sep 2009 05:12:49 +0000</pubDate>
<guid>http://www.engineyard.com/blog/2009/cucumber-step-argument-transforms/#IDComment35581413</guid>
</item><item>
<title>Union Station : Cucumber: Step Argument Transforms</title>
<link>http://www.engineyard.com/blog/2009/cucumber-step-argument-transforms/#IDComment35506415</link>
<description>Yup, the Transform regex just has to match a capture group, not have identical text. That means groups in step defs that don&amp;#039;t match anything get checked against every Transform, and a group that matches short circuits checking the rest. </description>
<pubDate>Tue, 22 Sep 2009 15:31:14 +0000</pubDate>
<guid>http://www.engineyard.com/blog/2009/cucumber-step-argument-transforms/#IDComment35506415</guid>
</item><item>
<title>Union Station : Cucumber: Step Argument Transforms</title>
<link>http://www.engineyard.com/blog/2009/cucumber-step-argument-transforms/#IDComment35387629</link>
<description>Heya Eric,  I&amp;#039;m not sure if I understand your situation exactly, let me know if this solves it:  # support file Transform /^new young child (\\w+)$ do |first_name|    Person.gen(:child, :first_name =&amp;gt; first_name) end  Transform /^new guest user (\\w+)$/ do |username|   User.gen(:guest, :username =&amp;gt; username) end  Transform /^person (\\w+)$/ do |first_name|   Person.first :first_name =&amp;gt; first_name end  Transform /^user (\\w+)$/ do |username|   User.first :username =&amp;gt; username end  # step definition file Given /^a (\\w+) added by (\\w+)$/ do | person, user |     user.add person end   Then /^(user \\w+) has a referral for (person \\w+)$/ do |user, person |    user.should have_referral_for(person) end  # feature file Given a new young child Mike added by new guest user coolio Then user coolio has a referral for person Mike </description>
<pubDate>Tue, 22 Sep 2009 05:00:36 +0000</pubDate>
<guid>http://www.engineyard.com/blog/2009/cucumber-step-argument-transforms/#IDComment35387629</guid>
</item><item>
<title>Union Station : Cucumber: Step Argument Transforms</title>
<link>http://www.engineyard.com/blog/2009/cucumber-step-argument-transforms/#IDComment34834437</link>
<description>If a transform fails then all the others defined before it (from newest to oldest) are tried. If no transform ends up matching then the original argument is returned. </description>
<pubDate>Thu, 17 Sep 2009 04:43:43 +0000</pubDate>
<guid>http://www.engineyard.com/blog/2009/cucumber-step-argument-transforms/#IDComment34834437</guid>
</item><item>
<title>Union Station : Cucumber: Step Argument Transforms</title>
<link>http://www.engineyard.com/blog/2009/cucumber-step-argument-transforms/#IDComment34562456</link>
<description>For simple cases where you do need to parse the entire step argument, you can include capture groups that get yielded as arguments instead:  Transform /^age (\\d+)$/ do |age_string|  age_string.to_i end  Transform /^user (\\w+)$/ do |username|   User.first :username =&amp;gt; username end  Also, as of Cucumber 0.3.101 step argument transforms are in the official release! </description>
<pubDate>Tue, 15 Sep 2009 16:41:07 +0000</pubDate>
<guid>http://www.engineyard.com/blog/2009/cucumber-step-argument-transforms/#IDComment34562456</guid>
</item><item>
<title>Union Station : Cucumber: Step Argument Transforms</title>
<link>http://www.engineyard.com/blog/2009/cucumber-step-argument-transforms/#IDComment34488971</link>
<description>Hi JJM,  If what you suggested were possible, then you would still not keep code DRY because you would need to duplicate the various #to_whatever calls in each step definition.  In Ruby, you can extend the String class to add extra #to_whatever methods like you suggested, but you can&amp;#039;t make method calls inside the block parameters like you showed. </description>
<pubDate>Mon, 14 Sep 2009 23:58:34 +0000</pubDate>
<guid>http://www.engineyard.com/blog/2009/cucumber-step-argument-transforms/#IDComment34488971</guid>
</item>	</channel>
</rss>