Browse Source

Closure as filter.

pull/50/head
Rafal Kupiec 1 year ago
parent
commit
aae526b1d4
Signed by: belliash GPG Key ID: 4E829243E0CFE6B4
2 changed files with 36 additions and 0 deletions
  1. +28
    -0
      tests/anon_filter.aer
  2. +8
    -0
      tests/anon_filter.exp

+ 28
- 0
tests/anon_filter.aer View File

@ -0,0 +1,28 @@
class Program {
private callback $condition = bool(int $x) { return ($x > 100); };
private int[] $numbers = {34, 56, 22, 1, 5, 67, 897, 123, 55, 101};
int[] filter(callback $condition, int[] $numbers) {
int $len = sizeof($numbers);
int[] $filtered;
for(int $i = 0; $i < $len; $i++) {
if($condition($numbers[$i])) {
$filtered[] = $numbers[$i];
}
}
return $filtered;
}
void main() {
int[] $filtered = $this->filter($this->condition, $this->numbers);
var_dump($filtered);
}
}
/*
* Should output
Array ( [0] => 897 [1] => 123 )
*/

+ 8
- 0
tests/anon_filter.exp View File

@ -0,0 +1,8 @@
array(int, 3) {
[0] =>
int(897)
[1] =>
int(123)
[2] =>
int(101)
}

Loading…
Cancel
Save