メメメモモ

プログラミング、筋トレ、ゲーム、etc

perl

Acme::Lisp

http://search.cpan.org/~ambs/Acme-Lisp-0.03/lib/Acme/Lisp.pm 下記のようにLispの計算を評価してくれます。 use strict; use warnings; use Acme::Lisp; # 引き算 my $lisp_code = [ qw(- 1 2 3 4) ]; print eval_lisp($lisp_code) ,"\n"; # 再帰的なリス…

ユークリッドの互除法

ユークリッドの互除法をperlで書いてみました。 use strict; use warnings; { gcd(160,48); } sub gcd { my ($x, $y) = @_; my $c; while ($x > 0 && $y > 0) { if ($y > $x) { $c = $x; $x = $y; $y = $c; } print "$x, $y\n"; $c = $y; $x = $x - $y; $y =…

クイックソート

クイックソートを行なうプログラムをperlで書きました。 use strict; use warnings; { my @a = qw/3 2 0 5 8 3 4 1 3 2/; print join(',',@a) . "\n"; print "===================\n"; print join(',',sort(@a)) . "\n"; } sub pivot { my ($ar, $i, $j) = @…

ACME

CPANにAcmeという名前空間があることを知りました。 ACMEには、ネタ的なプログラムがあって、とても面白いです。 面白いだけじゃなくて、ソースコードを読むと、とても勉強にもなります。 いくつか紹介してみたいと思います。 Acme::Sneeze http://search.cp…

マージソート

perlのsort関数はマージソートを使っているということなので、 勉強のため、perlでマージソートするプログラムを書きました。 use strict; use warnings; { my @a = (8,4,3,9,7,6,5,2,1); print join(',',@a), "\n"; print "===================\n"; print j…

Plagger導入

スクレイピングをやっていきたいと思ったので、「Plagger」を使ってみることにしました。 色々なところで言われている通り、ドキュメントが少ないです。 分かりやすい解説もあるのですが、その通りにやっても正常に動かなかったりしました。 ってことなので…

スタートアップ環境

Webサービスのスタートアップの環境として下記のものを使用していきたいなと思っています。 サクラインターネット (レンタルサーバ) http://www.sakura.ad.jp/ MENTA (perlフレームワーク) http://64p.org/menta/ SQLite (データベース) http://www.sqlite.o…