Rubyについて
標準の関数は、中で勝手に型変換してくれないので、
.to_i か
.to_s で型変換して渡す。
配列とか、たくさん扱うものは、
Enumerable
を継承している。
.to_i か
.to_s で型変換して渡す。
配列とか、たくさん扱うものは、
Enumerable
を継承している。
JavaScriptのすごくつまづきやすいところ
setTimeoutにthisを渡せない
ダメな例:
いける例:
ダメな理由:
function(){ alert(this.name) }だけが、setTimeoutに切り離されて渡されるため。
setTimeout(function(){ alert(this.name) }, 100);
と書いたのと同じことになってしまう。
setTimeoutに引数がわたせない
ダメな例:
いける例:
ダメな理由:
setTimeoutには無名関数というか関数オブジェクトを渡さないといけないため
参考:
http://d.hatena.ne.jp/bingo_nakanishi_perl/20090207/1233969698
http://d.hatena.ne.jp/cloned/20070301
http://labs.cybozu.co.jp/blog/kazuho/archives/2006/12/oo-settimeout.php
まるごとJavaScript&Ajax!
ダメな例:
var c = {
name : 'bingo',
func : function(){ alert(this.name) }
};
setTimeout(c.func, 100);
いける例:
var c = {
name : 'bingo',
func : function(){ alert(this.name) }
};
setTimeout(function(){c.func()}, 100);
ダメな理由:
function(){ alert(this.name) }だけが、setTimeoutに切り離されて渡されるため。
setTimeout(function(){ alert(this.name) }, 100);
と書いたのと同じことになってしまう。
setTimeoutに引数がわたせない
ダメな例:
var c = {
name : 'bingo',
func : function(age){ alert(this.name + ':' + age) }
};
setTimeout(c.func(14), 100);
いける例:
var c = {
name : 'bingo',
func : function(age){ alert(this.name + ':' + age) }
};
setTimeout(function(){c.func(14)}, 100);
ダメな理由:
setTimeoutには無名関数というか関数オブジェクトを渡さないといけないため
参考:
http://d.hatena.ne.jp/bingo_nakanishi_perl/20090207/1233969698
http://d.hatena.ne.jp/cloned/20070301
http://labs.cybozu.co.jp/blog/kazuho/archives/2006/12/oo-settimeout.php
まるごとJavaScript&Ajax!
こういうのって邪道かなぁ
use strict;
use Data::Dumper;
my $c;
$c = {
'age' => 14,
'next_year' => sub {
print '1年たちました', "\n";
$c->{'age'}++;
}
};
print Dumper \$c;
$c->{'next_year'}->();
$c->{'next_year'}->();
print Dumper \$c;
結果:
$VAR1 = \{
'next_year' => sub { "DUMMY" },
'age' => 14
};
1年たちました
1年たちました
$VAR1 = \{
'next_year' => sub { "DUMMY" },
'age' => 16
};
blessを使え?
じゃんけんの問題がやっとわかった
http://bingobingobingo.blog49.fc2.com/blog-entry-354.html
やっと、理屈がわかった。
必要な知識:
知識その1
3x + 0, 3x + 1, 3x + 2
という3つのパターンを考えた場合。
x が邪魔である。
xを消すには mod を使う。
正確にいうと mod 3を使う。
さすれば、それぞれ、
0, 1, 2
に集約できる(ループがなくなった)。
知識その2
じゃんけんの「勝ち」、「負け」、「ひきわけ」というのは、
3x + 0, 3x + 1, 3x + 2
という関係のどれかに、ぴったりあてはまる(というかそういう風にルールがなっている)。
知識その3
modの概念とは、
X = 3x + 2なら、 X mod 3 = 2
であるということ。
このmod、どういう風に使うかというと、
9という数字が、
3x + 0, 3x + 1, 3x + 2
のどのパターンにあてはまるか知りたいとして、それを求められる。
9 mod 3 = 0 なので、
9 は、 3x + 0のパターンにあてはまる。
10 mod 3 = 1 なので、
10は、 3x + 1のパターンにあてはまる。
こういう風に使う。
知識その4
じゃんけんの勝敗を1次元の線分とみなして、
COMと人との差をもとめる。この差は距離とも考えられる。
距離は -1 というようにもなりうる。

まとめ(どうやって、じゃんけんプログラムを作るか)
勝敗およびひきわけは、
3x + 0, 3x + 1, 3x + 2
のどれかにあてはまる。
どれにあてはまるかは、
COM と 人 との距離でわかる。
0 1 2 0 1 2 0 1 2
と書けばわかる。
でもって、その距離が、
3x + 0, 3x + 1, 3x + 2
のどれにあてはまるかは、
mod 3に聞けば教えてくれる。
距離 mod 3 = 2 なら、 3x + 2 のパターンであるということだ。
やっと、理屈がわかった。
必要な知識:
知識その1
3x + 0, 3x + 1, 3x + 2
という3つのパターンを考えた場合。
x が邪魔である。
xを消すには mod を使う。
正確にいうと mod 3を使う。
さすれば、それぞれ、
0, 1, 2
に集約できる(ループがなくなった)。
知識その2
じゃんけんの「勝ち」、「負け」、「ひきわけ」というのは、
3x + 0, 3x + 1, 3x + 2
という関係のどれかに、ぴったりあてはまる(というかそういう風にルールがなっている)。
知識その3
modの概念とは、
X = 3x + 2なら、 X mod 3 = 2
であるということ。
このmod、どういう風に使うかというと、
9という数字が、
3x + 0, 3x + 1, 3x + 2
のどのパターンにあてはまるか知りたいとして、それを求められる。
9 mod 3 = 0 なので、
9 は、 3x + 0のパターンにあてはまる。
10 mod 3 = 1 なので、
10は、 3x + 1のパターンにあてはまる。
こういう風に使う。
知識その4
じゃんけんの勝敗を1次元の線分とみなして、
COMと人との差をもとめる。この差は距離とも考えられる。
距離は -1 というようにもなりうる。

まとめ(どうやって、じゃんけんプログラムを作るか)
勝敗およびひきわけは、
3x + 0, 3x + 1, 3x + 2
のどれかにあてはまる。
どれにあてはまるかは、
COM と 人 との距離でわかる。
0 1 2 0 1 2 0 1 2
と書けばわかる。
でもって、その距離が、
3x + 0, 3x + 1, 3x + 2
のどれにあてはまるかは、
mod 3に聞けば教えてくれる。
距離 mod 3 = 2 なら、 3x + 2 のパターンであるということだ。
ブログ検索
プロフィール
ビンゴ中西
Perlが好きである。
プログラミング言語のほとんどは独学。独学の過程で多くのプログラム仲間にも色々教わりました。
プログラミング言語のほとんどは独学。独学の過程で多くのプログラム仲間にも色々教わりました。
最近の記事
- Rubyについて (03/23)
- 公開鍵暗号方式 (02/24)
- JavaScriptのすごくつまづきやすいところ (02/22)
- こういうのって邪道かなぁ (02/21)
- じゃんけんの問題がやっとわかった (02/20)
FC2カウンター
最近のコメント
- ビンゴ中西:Rubyについて (03/24)
- ujihisa:Rubyについて (03/23)
- koduki:JavaScriptのすごくつまづきやすいところ (02/27)
- ビンゴ中西:apache2 (02/21)
- のざわ:apache2 (02/20)
- ビンゴ中西:Kansai.pm第10回で発表させていただきました (01/26)
- のざわ:Kansai.pm第10回で発表させていただきました (01/26)
最近のトラックバック
- もぼなもな書房:入門Perl DBI (05/26)
- ???:Υ??? if else if ä? JavaScript (10/10)
- AzureStone Memo:[kansai.pm]Kansai.pm 第10回ミーティング レポート (08/19)
- 404 Blog Not Found:perl - Inside-out Object (03/11)
- deq blog:[プログラミング] 関数と演算子 (12/13)
カテゴリー
- 未分類 (688)
- 説明 (3)
- Linux (17)
- LAN (4)
- MFC VC6.0 (8)
- データベース (29)
- 古の道具 Emacs (14)
- bash (11)
- CGI (7)
- 正規表現 (4)
- レイアウト (4)
- ビンゴ中西のエッセイ (6)
- Apache (5)
- CSS (1)
- FC2 BLOG解析 (13)
- メンズカジュアル (12)
- JavaScript (36)
- ネットワーク (4)
- それ仕様書でできるよ (7)
- 料理 (6)
- 超高速vi (17)
- Java (38)
カレンダー
| 日 | 月 | 火 | 水 | 木 | 金 | 土 |
|---|---|---|---|---|---|---|
| - | - | 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 | - | - |
月別アーカイブ
- 2009年03月 (1)
- 2009年02月 (12)
- 2009年01月 (9)
- 2008年12月 (4)
- 2008年11月 (14)
- 2008年10月 (38)
- 2008年09月 (12)
- 2008年08月 (4)
- 2008年07月 (26)
- 2008年06月 (16)
- 2008年05月 (5)
- 2008年03月 (1)
- 2008年02月 (2)
- 2008年01月 (2)
- 2007年12月 (5)
- 2007年11月 (18)
- 2007年10月 (22)
- 2007年09月 (39)
- 2007年08月 (20)
- 2007年07月 (98)
- 2007年06月 (64)
- 2007年05月 (68)
- 2007年04月 (11)
- 2007年03月 (72)
- 2007年02月 (51)
- 2007年01月 (59)
- 2006年12月 (58)
- 2006年11月 (29)
- 2006年10月 (26)
- 2006年09月 (16)
- 2006年08月 (14)
- 2006年07月 (17)
- 2006年06月 (13)
- 2006年05月 (21)
- 2006年04月 (16)
- 2006年03月 (22)
- 2006年02月 (29)
[,FC2ブログ]
