| 1 | const a = [4, 5, 1, 2, 5, 9] |
| 2 | |
| 3 | fn test_map() { |
| 4 | assert a.map(it) == a |
| 5 | assert a.map(it * 10) == [40, 50, 10, 20, 50, 90] |
| 6 | |
| 7 | assert a.map(|x| x) == a |
| 8 | assert a.map(|x| x * 10) == [40, 50, 10, 20, 50, 90] |
| 9 | assert a.map(|x| 'x: ${x}') == ['x: 4', 'x: 5', 'x: 1', 'x: 2', 'x: 5', 'x: 9'] |
| 10 | assert a.map(|x| f64(x) * 10.0) == [40.0, 50.0, 10.0, 20.0, 50.0, 90.0] |
| 11 | } |
| 12 | |
| 13 | fn test_filter() { |
| 14 | assert a.filter(it > 4) == [5, 5, 9] |
| 15 | assert a.filter(it < 4) == [1, 2] |
| 16 | |
| 17 | assert a.filter(|x| x > 4) == [5, 5, 9] |
| 18 | assert a.filter(|x| x < 4) == [1, 2] |
| 19 | } |
| 20 | |
| 21 | fn test_any() { |
| 22 | assert a.any(it > 4) |
| 23 | assert !a.any(it > 40) |
| 24 | |
| 25 | assert a.any(|x| x > 4) |
| 26 | assert !a.any(|x| x > 40) |
| 27 | } |
| 28 | |
| 29 | fn test_all() { |
| 30 | assert !a.all(it > 4) |
| 31 | assert a.all(it < 40) |
| 32 | |
| 33 | assert !a.all(|x| x > 4) |
| 34 | assert a.all(|x| x < 40) |
| 35 | } |
| 36 | |
| 37 | fn each(a []int, cb fn (x int)) { |
| 38 | for x in a { |
| 39 | cb(x) |
| 40 | } |
| 41 | } |
| 42 | |
| 43 | fn test_using_lambda_expr_that_does_not_return_as_cb() { |
| 44 | each(a, fn (x int) { |
| 45 | println(x) |
| 46 | }) |
| 47 | each(a, |x| println(x)) |
| 48 | each(a, |x| dump(x)) |
| 49 | } |
| 50 | |