Catamorphism: Difference between revisions

→‎{{header|Go}}: Idiomatic for range (plus gofmt and remove trailing blank line)
m (→‎{{header|Go}}: Condense code)
(→‎{{header|Go}}: Idiomatic for range (plus gofmt and remove trailing blank line))
Line 183:
 
func main() {
n := []int {1, 2, 3, 4, 5}
 
fmt.Println(reduce(add, n))
fmt.Println(reduce(sub, n))
Line 190:
}
 
func add(a int, b int) int { return a + b }
func sub(a int, b int) int { return a - b }
func mul(a int, b int) int { return a * b }
 
func reduce (rf func(int, int) int, m []int) (int) {
r := m[0]
for i_, v := 1;irange < len(m);i++[1:] {
r = rf(r, m[i]v)
}
return r
}</lang>
}
</lang>
{{out}}
<pre>
Anonymous user