1 // $G $D/$F.go && $L $F.$A && ./$A.out
3 // Copyright 2009 The Go Authors. All rights reserved.
4 // Use of this source code is governed by a BSD-style
5 // license that can be found in the LICENSE file.
9 func caller(f func(int, int) int, a, b int, c chan int) {
13 func gocall(f func(int, int) int, a, b int) int {
19 func call(f func(int, int) int, a, b int) int {
23 func call1(f func(int, int) int, a, b int) int {
27 var f func(int, int) int
29 func add(x, y int) int {
33 func fn() func(int, int) int {
37 var fc func(int, int, chan int)
39 func addc(x, y int, c chan int) {
43 func fnc() func(int, int, chan int) {
49 println("wrong val", x)
56 func emptyresults() {}
62 three(call(add, 1, 2))
63 three(call1(add, 1, 2))
67 three(call(fn(), 1, 2))
68 three(call1(fn(), 1, 2))
69 three(call(func(a, b int) int { return a + b }, 1, 2))
70 three(call1(func(a, b int) int { return a + b }, 1, 2))
80 go func(a, b int, c chan int) { c <- a+b }(1, 2, c)
85 nothing = emptyresults