"血をもって書け。そうすればあなたは、血が精神だということを経験するだろう。"

Perl

本買った

ずばりわかる!Webプログラミング2.0―最新のWeb技術を一挙解説 (日経BPパソコンベストムック)作者: 日経ソフトウエア出版社/メーカー: 日経BP社発売日: 2007/04メディア: ムック クリック: 23回この商品を含むブログ (14件) を見る Catalystについていろいろ…

ソートいろいろ

せっかく色々書いたのでまとめ ソート シェアソート id:satzz:20080730:1217440980 基数ソート id:satzz:20080730:1217428362 バケットソート id:satzz:20080730:1217425267 シェルソート id:satzz:20080729:1217354229 挿入ソート id:satzz:20080729:121734…

基数ソート

use strict; use warnings; use Data::Dumper; my $trials = 40; my %h = map { int rand $trials => 1 } 1..$trials; my @target = keys %h; print join(" ", @target); print "\n"; @target = radix_sort(@target); sub radix_sort { my @tupples = map { …

バケットソート

perlっぽすぎて面白くないw use strict; use warnings; my $trials = 30; my %h = map { int rand $trials => 1 } 1..$trials; my @target = keys %h; print join(" ", @target); print "\n"; @target = bucket_sort(@target); print join(" ", @target); p…

シェアソート

use strict; use warnings; my $trials = 25; my %h = map { int rand $trials => 1 } 1..$trials; my @target = keys %h; @target = shear_sort(@target); sub shear_sort { my @ary = @_; my $element_num = $#ary + 1; my $column_num; while (++$column_…

バブルソート

use strict; use warnings; my $trials = 10; my %h = map { int rand $trials => 1 } 1..$trials; my @target = keys %h; print join(" ", @target); print "\n"; @target = bubble_sort(@target); sub bubble_sort { my @ary = @_; for my $i (reverse 0..…

ヒープソート

use strict; use warnings; my $trials = 20; my %h = map { int rand $trials => 1 } 1..$trials; my @target = keys %h; print join(" ", @target); print "\n"; @target = hsort(@target); print join(" ", @target); print "\n"; sub hsort { my @heap =…

素因数分解

Haskell版 http://d.hatena.ne.jp/satzz/20080421/1208746502のほぼ直訳 use strict; use warnings; print join ("\t", factors(600851475143)); sub factors { my ($target, $guess) = @_; $guess ||= 2; return ($target) if $guess * $guess > $target; #…

シェルソート

挿入ソートを流用。少し手がかかった。。。 use strict; use warnings; my $trials = 30; my %h = map { int rand $trials => 1 } 1..$trials; my @target = keys %h; print join(" ", @target); print "\n"; @target = shell_sort(@target); print join(" "…

挿入ソート

use strict; use warnings; my $trials = 15; my %h = map { int rand $trials => 1 } 1..$trials; my @target = keys %h; print join(" ", @target); print "\n"; @target = isort(@target); sub isort { my @ary = @_; my @ret = (shift @ary); while (1) …

シェーカーソート

これは結構おもしろかった use strict; use warnings; my $trials = 15; my %h = map { int rand $trials => 1 } 1..$trials; my @target = keys %h; print join(" ", @target); print "\n"; @target = shaker_sort(@target); sub shaker_sort { my @ary = @…

選択ソート

Wikipediaのほぼ直訳。そろそろ飽きてきたな。っていうかアルゴリズムのシビアな話をPerlでやるなって感じですね。Haskellでやろうかな。 use strict; use warnings; my $trials = 20; my %h = map { int rand $trials => 1 } 1..$trials; my @target = keys…

クイックソート

use strict; use warnings; my $trials = 20; my %h = map { int rand $trials => 1 } 1..$trials; my @target = keys %h; print join ("\t", @target) . "\n"; @target = qsort(@target); print join ("\t", @target) . "\n"; sub qsort { my @ary = @_; re…

マージソート

use strict; use warnings; my $trials = 10; my %h = map { int rand $trials => 1 } 1..$trials; my @target = keys %h; print join ("\t", @target) . "\n"; split_merge(0, $#target); print join ("\t", @target) . "\n"; sub split_merge { my ($begin…

ポインタ

Perlのリファレンスはすぐに理解できたのに、Cのポインタは勉強するたびに何かが気持ち悪くて、いつも身につかないでいたんだけど、なんでかようやく分かった。 二つの変数を入れ替える有名な関数を書いてみる。 VB Module Main Private Sub Swap(ByRef A As…

perl-users.jpについてそろそろ(ry

well, これから初心者が深夜のテンションで思いっきりdisりますよ>< 尊敬する人もたくさん関わってそうな感じなので先に謝っておきます><すみません>< 今やってんだよ!って感じならますますすみません>< what? http://perl-users.jp/ がperl初心者…

まるごとPerl買った

kansai.pmで持ってきてnaoyaにサインを求めている人がいたので買ってみた。 まるごとPerl! Vol.1作者: 小飼弾,宮川達彦,伊藤直也,川合孝典,水野貴明出版社/メーカー: インプレスコミュニケーションズ発売日: 2006/08/24メディア: 大型本購入: 7人 クリック: …

恥を忍んで勉強会レポ

5月病にならずに5月を乗り切った! vim勉強会#2 http://cotocoto.jp/event/26513 viは使ったことあったけどvimは今日初めて使った。vimtutorを途中まで読んでid:Sixeightとid:secondlifeのLTを聞いた。自分は大学教授のサイトとかにだまされてemacs使ってる…

懐古といえば

最近妙な本(いや本そのものは妙じゃないんだけど)に挑発されてPerlでGOTO文を使い始めた。 goto HELL if($in_death_march); HELL: while($time<$morning) { &debug; } それはどうでもいいとして、Perlのnext,last,goto,returnはポストフィックスのifと組み合…