Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package main
- import "fmt"
- func main() {
- sum := Sum(1, 2, 3, 4)
- fmt.Println(sum)
- }
- type any interface{}
- func Map(operation func(p any) any, is ...any) []any {
- r := make([]any, len(is))
- for index, value := range is {
- r[index] = operation(value)
- }
- return r
- }
- func Reduce(operation func(a any, b any) any, is ...any) any {
- var r any
- for index, value := range is {
- if index == 0 {
- r = value
- } else {
- r = operation(r, value)
- }
- }
- return r
- }
- func Add(a, b any) any {
- return (a).(int) + (b).(int)
- }
- func Sum(i ...any) any {
- return Reduce(Add, i...)
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement