<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0"><channel><title>perl6 / Drkcore</title><link>http://blog.kzfmix.com/perl6</link><description>Programming, Music, Snowboarding</description><language>ja</language><lastBuildDate>Fri, 30 Jul 2010 19:51:12 +0919</lastBuildDate><item><title>Rakudo Starを触ってみた</title><link>http://blog.kzfmix.com/entry/1280486837</link><description>&lt;p&gt;&lt;a href="http://en.wikibooks.org/wiki/Perl_6_Programming"&gt;Wiki Book&lt;/a&gt;を読みながら、面白いなと思った部分。&lt;/p&gt;

&lt;h4&gt;型チェックしてくれる&lt;/h4&gt;

&lt;pre&gt;&lt;code&gt;&amp;gt; my Int $x;
Int()
&amp;gt; $x = "1"
Type check failed for assignment
&amp;gt; $x = 1
1
&lt;/code&gt;&lt;/pre&gt;

&lt;h4&gt;multi method dispatch&lt;/h4&gt;

&lt;p&gt;Haskellっぽくかける&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;&amp;gt; multi sub fib (Int $n where { $n &amp;lt; 3 }) { 1 }
&amp;gt; multi sub fib (Int $n)                  { fib($n - 1) + fib($n - 2) }
&amp;gt; fib(10) #55
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;終了条件を最初に決めて、あとは再帰させてみた。&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;&amp;gt; multi sub mysum (@a where {@a == 0}) {return 0}
&amp;gt; multi sub mysum (@a) {@a[0] + mysum(@a[1..(@a-1)])}
&amp;gt; mysum 1..10 #55
&lt;/code&gt;&lt;/pre&gt;

&lt;h4&gt;Placeholder Arguments&lt;/h4&gt;

&lt;p&gt;$^で&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;&amp;gt; for (@myArray) { say $^a + $^b; }
3  # 1+2
7  # 3+4
11 # 5+6
&lt;/code&gt;&lt;/pre&gt;

&lt;h4&gt;gather take&lt;/h4&gt;

&lt;p&gt;リスト内包表記っぽい。それともScalaっぽい？&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;&amp;gt; gather for 1..10 {take $_ if $_ % 3 == 0} # 3 6 9
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;こんな感じにもできる&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;&amp;gt; gather for 1..10 {take 1..$_,"\n"}
1
 1 2
 1 2 3
 1 2 3 4
 1 2 3 4 5
 1 2 3 4 5 6
 1 2 3 4 5 6 7
 1 2 3 4 5 6 7 8
 1 2 3 4 5 6 7 8 9
 1 2 3 4 5 6 7 8 9 10 
&lt;/code&gt;&lt;/pre&gt;
</description><pubDate>Fri, 30 Jul 2010 19:51:12 +0919</pubDate><category>perl</category><category>perl6</category></item><item><title>Rakudo Starを入れた</title><link>http://blog.kzfmix.com/entry/1280438560</link><description>&lt;p&gt;朝からPerl6の実装のひとつの&lt;a href="http://rakudo.org/announce/rakudo-star/2010.07"&gt;Rakudo Star&lt;/a&gt;を入れて遊んでた。&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;$ ./perl6 
&amp;gt; for 1..5 { .say }
1
2
3
4
5
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;無限リスト&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;&amp;gt; for 1..Inf { .say }
1
2
3
...
20092
20093
20094
Segmentation fault
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;週末にもう少し触ってみよう。&lt;/p&gt;

&lt;p&gt;&lt;div class="awsxom"&gt;
&lt;a href="http://www.amazon.co.jp/exec/obidos/ASIN/3827329442/ref=nosim/kaerutyuuihou-22"&gt;
&lt;img src="http://ecx.images-amazon.com/images/I/41L%2BtMegr5L._SL160_.jpg" align="left" hspace="5" border="0" alt="ProductName" class="image" /&gt;
&lt;strong&gt;Einstieg in Perl 6&lt;/strong&gt;&lt;/a&gt;&lt;br /&gt;
Alvar Freude &lt;br /&gt;
Addison Wesley Verlag / ￥ 4,393 ()&lt;br /&gt;
近日発売　予約可&lt;br /&gt;
&lt;br clear="all" /&gt;
&lt;/div&gt;&lt;/p&gt;
</description><pubDate>Fri, 30 Jul 2010 06:23:15 +0919</pubDate><category>perl</category><category>perl6</category></item></channel></rss>