人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

Visual Basic JavaScript 関数の中の関数


あるページのプログラムをVBに置き換えて利用したいのですが、
どう書き換えたらvbに実装できるかわかりません
このページのスクリプトです。
http://lagstyle.com/icm/icm.html

var getTotalProbability = function(player, rank) {
var ranking = [];
var ret = 0;
// 内部関数で再帰
var makeRanking = function() {
// 自分の順位なら、最後の順位に自分を入れて確率を計算
if(rank == ranking.length) {
ranking.push(player);
ret += getProbability(ranking);
ranking.pop(player);
return;
}
for(var i = 0; i < 10; i++) {
if(i == player) {
continue;
}
for(var j = 0; j < ranking.length; j++) {
if(ranking[j] == i) {
break;
}
}
if(j != ranking.length) {
continue;
}
// 他人を次の順位に入れて再帰する
ranking.push(i);
makeRanking();
ranking.pop(i);
}
};
makeRanking();
return ret;
};

JavaScriptの 関数の中の関数、 再帰などを
vbに置き換えて実装することは可能でしょうか?
またその方法を教えていただきたいです。


●質問者: tamatama5623
●カテゴリ:コンピュータ
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● ku__ra__ge

VBというのはExcelVBAやVB6ということですよね?

JavaScriptの関数の中の関数は書き方によってはVBでは再現出来ない動作をしますが、これについては、JavaScriptでは関数内で定義されている関数も全部普通に関数定義する書き方でVBに書き換えれば問題ないと思います。
(あまり詳細には見ていませんが)

ただし変数については「関数の中の関数」からは「外側の関数で宣言された変数」も見えることを意識して、いくつかグローバル変数に変えてやる必要があります。

ちなみに再帰はVBでも問題なくできますので、特に注意する点は無いかと。

また、JavaScriptの配列にはpushやpopというスタック操作が行えるメソッドが用意されていますが、VBにはそれが無いのでスタック操作を自前で作る必要がありそうです。

関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ