YanoRyuichi.com/
Wiki
Blog
GitHub
Sandbox
開始行:
* クロージャを使ったイテレータの実装 [#r7b384f1]
<?php
function getIterator($vars) {
$i = 0;
$n = sizeof($vars);
return function ($func) use ($vars, &$i, $n) {
if ($i < $n) {
return $func($vars[$i++]);
}
return false;
};
}
$it = getIterator(array(1,2,3,4,5));
while (($v = $it(function ($v) { return $v * 10; })) !==...
print "$v\n";
}
10
20
30
40
50
終了行:
* クロージャを使ったイテレータの実装 [#r7b384f1]
<?php
function getIterator($vars) {
$i = 0;
$n = sizeof($vars);
return function ($func) use ($vars, &$i, $n) {
if ($i < $n) {
return $func($vars[$i++]);
}
return false;
};
}
$it = getIterator(array(1,2,3,4,5));
while (($v = $it(function ($v) { return $v * 10; })) !==...
print "$v\n";
}
10
20
30
40
50
ページ名: