logo

Polyglot CheatSheet - Functions

Last Updated: 2023-02-28

Go

Function values may be used as function arguments and return values.

func compute(fn func(float64, float64) float64) float64 {
	return fn(3, 4)
}

func main() {
  hypot := func(x, y float64) float64 {
		return math.Sqrt(x*x + y*y)
	}
  fmt.Println(compute(hypot))
}

Go functions may be closures:

func adder() func(int) int {
	sum := 0
	return func(x int) int {
		sum += x
		return sum
	}
}

func main() {
	pos, neg := adder(), adder()
	for i := 0; i < 10; i++ {
		fmt.Println(
			pos(i),
			neg(-2*i),
		)
	}
}

JavaScript

Set default value inside function

function foo(params) {
  var settings = params || {};
}