タグ:programming ( 56 ) タグの人気記事
Perl の my と local と our
すっきりした>< - YoshioriのBlog
our 名前をスコープに限定. local 値をスコープに限定. my 名前と値の両方をスコープに限定

local と my - IT戦記
404 Blog Not Found:perl - myとourとscopeと
[Perl] my と local と our の違いについて - TAKESAKOのはてな出張所

 Yoshioriさんのエントリの言葉が、それぞれの特徴を端的に言い表していて面白い。ただ、分かりやすいのは、やっぱり竹迫さんの説明かな。

 僕自身が、この辺の local と my (と our)の違いが分かったと言えるようになったのは、「Effective Perl」の23章を読んでからかなぁ。「Effective Perl」は、local とか my とかで悩むぐらいに Perl に慣れた頃に読むと、役に立つ本だと思う。

Effective Perl (ASCII Addison Wesley Programming Series)
Amazon.co.jp: Effective Perl (ASCII Addison Wesley Programming Series): 本: ジョセフ・N. ホール,ランドル・L. シュワォーツ,Joseph N. Hall,Randal L. Schwartz,吉川 邦夫
[PR]
by fkmn | 2008-01-10 23:55 | IT
__FILE__ eq $0
「どう書く」の弾さんの投稿を読んでたら、たまに

if (__FILE__ eq $0){
# ...
}
ってコードが出てきて、どういう意味か分からずに気になっていたんだけど、「Programming Ruby」(なぜかRuby(笑))に答えが書いてあった。

 ユーザによって直接起動されたファイル内に存在する場合にだけコードを実行する時に、__FILE__定数と$0変数を組み合わせて使う事がよくあります。(中略)このようにすると、テストコードは、ライブラリのソースが直接起動された場合にだけ実行され、他のプログラム内で require されている場合は実行されません。

# ライブラリのコード
# ・・・
if __FILE__ == $0
# テスト...
end

「プログラミングRuby 第2版 言語編」p.292

だ、そうです。試してみたら、確かに Perl でもそういう動作だった。

というか、ググってみたらすぐに答えが見つかるしw。不覚・・・。
[PR]
by fkmn | 2007-12-09 23:55 | IT
どう書く?org の残骸
隣り合う二項の差 どう書く?org
整数のリストがxsが与えられたときに、隣り合う2要素の差のリストを作る関数diffを作ってください。

いろいろ試して、結局投稿しなかった残骸を置いておきます。

普通に書いたもの
sub diff {
my @a;
push (@a, $_[ $_ + 1 ] - $_[$_]) for 0 .. $#_ - 1;
@a;
}

pairwise を使いたくて書いてみたもの
use List::MoreUtils qw/pairwise/;

sub diff {
my @a = @_[ 1 .. $#_ ];
my @b = @_[ 0 .. $#_ - 1 ];
return pairwise { $a - $b } @a, @b;
}

関数内で再帰
sub diff {
my $a = shift or return;

sub diff_rec {
my $b = $a;
$a = shift or return;
return ( $a - $b, diff_rec(@_) );
}
return diff_rec @_;
}

[PR]
by fkmn | 2007-08-22 23:55 | IT
LL魂に行ってきました
a0057891_23101336.jpg

 スタッフの皆様、どうもお疲れさまでした。10:30 - 20:40 っていうのは、やっぱり長丁場ですねぇ。座ってるだけで結構疲れたので、運営側の皆さんはそれ以上にお疲れじゃないでしょうか?ほんと、頭が下がります。ありがとうございました。


 んで、感想をば(ちなみに、LLイベントは、今年が初参加)。

 こんだけたくさんの言語が一カ所に集まって、いろいろ話を聞くというのは、結構新鮮。初めて聞く言語とか、聞いた事あるけどコードを初めて見る言語とかも結構あったし。R、Lua、なでしこ、xtal(*) あたりは、ちょっと触ってみようかなぁ、という気になった。あとは、Lisp の存在感はでかいなぁ、とか。

 それから、最後の抽選会でボールを受け取って、写真の本(アクションゲームアルゴリズムマニアックス)をもらった。自分じゃ、絶対買わない本だなぁw。これも何かの巡り合わせか・・・。とりあえず、一通り読んでみようかな。

* xtal の読みは「くりすたる」らしい。会場で初めて知った。

8/6 追記
 今回のイベントのベスト質問といても過言ではない、「キミならどう書く」での「どのプレゼンソフトも、従来のOHP的ページ送り型から抜け出ていないのが残念」という趣旨の質問は、たださんの発言だったらしい。質問を聞いた瞬間に、RubyKaigiでのサイロス誠さんのプレゼンツールが思い浮かんだ。
[PR]
by fkmn | 2007-08-04 23:04 | 日記
SQL で3倍完全数(ダブル完全数)
ダブル完全数 どう書く?org
「完全数」とは、自分以外の約数の和が自分自身と等しいような整数のことです。 (完全数 - Wikipedia)。

ここで「自分以外の約数の和が自分自身の2倍と等しいような整数」を「ダブル完全数」と呼ぶことにします。10000以下のダブル完全数をすべて求めるコードを書いてください。


実装非依存のはず。MySQL で確認してあります。

Drop TABLE digits;
CREATE TABLE digits(n INTEGER);
INSERT INTO digits VALUES(0);
INSERT INTO digits VALUES(1);
INSERT INTO digits VALUES(2);
INSERT INTO digits VALUES(3);
INSERT INTO digits VALUES(4);
INSERT INTO digits VALUES(5);
INSERT INTO digits VALUES(6);
INSERT INTO digits VALUES(7);
INSERT INTO digits VALUES(8);
INSERT INTO digits VALUES(9);

Drop TABLE numbers;
CREATE TABLE numbers AS
SELECT a.n + (b.n * 10) + (c.n * 100) + (d.n * 1000) + 1 AS n
FROM digits a, digits b, digits c, digits d;

SELECT a_n
FROM (SELECT a.n AS a_n, b.n AS b_n
FROM numbers a, numbers b
WHERE b.n <= a.n / 2 ) nums
WHERE MOD(a_n, b_n) = 0
GROUP BY a_n
HAVING a_n * 2 = SUM(b_n);


実行結果
+------+
| a_n |
+------+
| 120 |
| 672 |
+------+
2 rows in set (2 min 46.91 sec)

処理に結構な時間がかかってしまうなぁ
[PR]
by fkmn | 2007-07-20 23:06 | IT
【一人読書会目次】On Lisp
On Lisp
Paul Graham

4274066371
オーム社 2007-03
売り上げランキング : 82240
おすすめ平均 star

Amazonで詳しく見る
by G-Tools


[PR]
by fkmn | 2001-01-01 00:00 | 一人読書会


とあるWebアプリケーションエンジニアの日記
S M T W T F S
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
カテゴリ
以前の記事
ブログパーツ
リンク
検索
タグ
最新のトラックバック
プログラミングが「出来る..
from とりあえず9JP?
Genographic ..
from ナンジャモンジャ
ジュセリーノ
from ありの出来事
くちこみブログ集(ライフ..
from くちこみブログ集(ライフ)(..
以降、丁寧語で行こう!
from エッセイ的な何か
その他のジャンル
ファン
記事ランキング
ブログジャンル
画像一覧

fkmnの最近読んだ本 フィードメーター - フッ君の日常 あわせて読みたい AX