最近ものすごく気になるのが、WikipediaのことをWikiと略す人が結構居ることだ。
「今年になって、開発情報をWikiに書き込んで管理してるんですよ」*1と言ったら、どういう訳か相手には、Wikipediaに機密情報を投稿している人だと伝わっている。勝手に人をWikipedianにしないでくれ。
そりゃあオレにも、勝手に略して使っている単語は沢山あると思うが。Wikipedia = Wikiが相手の頭で成立していると、まるで会話が通じないのでちょっと困った。もし略すのが多数派になったら、慣れるしかないのか・・・。
*1 オレが使っているのはTiddlyWikiというファイルベースのWikiだ。
久々にLAMPパッケージで仕事をすることに。PHPにもeach関数というものが存在すると知り、もしやRubyのような要素のイテレーションが出来るのかと思ったけど、マニュアル読んだら全然違った。これは、foreachの別記法みたいなものか。
Iteratorパターンを書くとどうなるかと思ったが、Javaライクになってしまった。
class Collection {
var $_list;
function Collection() {
$this->_list = array();
}
function add($obj) {
$this->_list[] = $obj;
}
function get($index) {
return $this->_list[$index];
}
function size() {
return count($this->_list);
}
function iterator() {
return new Iterator($this);
}
}
class Iterator {
var $_index;
var $_collection;
function Iterator($collection) {
$this->_index = 0;
$this->_collection = $collection;
}
function hasNext() {
if($this->_index < $this->_collection->size()) {
return true;
}
else {
return false;
}
}
function next() {
$obj = $this->_collection->get($this->_index);
$this->_index ++;
return $obj;
}
}
XREAのサーバがPHP4しか使えなかったのだけど、多分PHP5で書いたらインタフェースも使えるし、ますますJavaになってしまうんだろうなぁ。実際に使ってみると、どこかで見た風なコードに。
$melosper1 = new Melosper("雷男");
$melosper2 = new Melosper("雷女");
$audience = new Collection();
$audience->add($melosper1);
$audience->add($melosper2);
$output = "<dl>\n";
for($it = $audience->iterator(); $it->hasNext();) {
$mlspr = $it->next();
$output .= "<dt>お名前</dt>\n";
$output .= "<dd>" . htmlspecialchars($mlspr->getName()) . "</dd>\n";
}
print($output . "</dl>\n");
配列を抽象化しないでそのまま使って、内部イテレータのforeachで辿ればいいじゃんという感じもする。
最近のツッコミ
参号館
日記(ariyasacca)