mirror of https://github.com/01-edu/public.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
52 lines
937 B
52 lines
937 B
5 years ago
|
## reduceint
|
||
|
|
||
|
### Instructions
|
||
|
|
||
|
Write a function called `reduceint` that simulates the behaviour of reduce from JavaScript.
|
||
|
|
||
5 years ago
|
The function should have as parameters a slice of integers, `a []int` and a function `f func(int, int) int`. You should apply for each element of the slice the arithmetic function, saving it and printing.
|
||
5 years ago
|
|
||
|
### Expected function
|
||
|
|
||
|
```go
|
||
5 years ago
|
func ReduceInt(a []int, f func(int, int) int) {
|
||
5 years ago
|
|
||
|
}
|
||
|
```
|
||
|
|
||
|
### Usage
|
||
|
|
||
|
Here is a possible program to test your function :
|
||
|
|
||
|
```go
|
||
|
package main
|
||
|
|
||
|
func main() {
|
||
|
mul := func(acc int, cur int) int {
|
||
|
return acc * cur
|
||
|
}
|
||
|
sum := func(acc int, cur int) int {
|
||
|
return acc + cur
|
||
|
}
|
||
|
div := func(acc int, cur int) int {
|
||
|
return acc / cur
|
||
|
}
|
||
|
as := []int{500, 2}
|
||
5 years ago
|
ReduceInt(as, mul)
|
||
|
ReduceInt(as, sum)
|
||
|
ReduceInt(as, div)
|
||
5 years ago
|
}
|
||
|
|
||
|
```
|
||
|
|
||
|
And its output :
|
||
|
|
||
|
```console
|
||
|
student@ubuntu:~/[[ROOT]]/test$ go build
|
||
|
student@ubuntu:~/[[ROOT]]/test$ ./test
|
||
|
1000
|
||
|
502
|
||
|
250
|
||
|
student@ubuntu:~/[[ROOT]]/test$
|
||
|
```
|