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.
54 lines
997 B
54 lines
997 B
5 years ago
|
## foldint
|
||
|
|
||
|
### Instructions
|
||
|
|
||
|
Write a function called `FoldInt` that simulates the behavior of reduce from JavaScript.
|
||
|
|
||
|
The function should have as parameters a function, `f func(int, int) int` a slice of integers, `slice []int` and an int `acc int`. You should apply for each element of the slice the arithmetic function, saving and printing it. The function will be tested with our own functions `Add, Sub, and Mul`.
|
||
|
|
||
|
### Expected function
|
||
|
|
||
|
```go
|
||
5 years ago
|
func FoldInt(f func(int, int) int, a []int, n int) {
|
||
5 years ago
|
|
||
|
}
|
||
|
```
|
||
|
|
||
|
### Usage
|
||
|
|
||
|
Here is a possible program to test your function:
|
||
|
|
||
|
```go
|
||
|
package main
|
||
|
|
||
|
func main() {
|
||
5 years ago
|
table := []int{1, 2, 3}
|
||
|
ac := 93
|
||
|
FoldInt(Add, table, ac)
|
||
|
FoldInt(Mul, table, ac)
|
||
|
FoldInt(Sub, table, ac)
|
||
|
fmt.Println()
|
||
|
|
||
|
table = []int{0}
|
||
5 years ago
|
FoldInt(Add, table, ac)
|
||
|
FoldInt(Mul, table, ac)
|
||
|
FoldInt(Sub, table, ac)
|
||
|
}
|
||
|
|
||
|
```
|
||
|
|
||
|
And its output :
|
||
|
|
||
|
```console
|
||
|
student@ubuntu:~/[[ROOT]]/test$ go build
|
||
|
student@ubuntu:~/[[ROOT]]/test$ ./test
|
||
|
99
|
||
|
558
|
||
|
87
|
||
|
|
||
|
93
|
||
|
0
|
||
|
93
|
||
|
student@ubuntu:~/[[ROOT]]/test$
|
||
|
```
|