From 091df794a3497ca702686f6ae58940af78a766dc Mon Sep 17 00:00:00 2001 From: Mark McGranaghan Date: Sun, 16 Sep 2012 13:09:26 -0700 Subject: [PATCH] more --- 23-closures.go | 18 ++++++++++++++++++ 24-recursion.go | 14 ++++++++++++++ 2 files changed, 32 insertions(+) create mode 100644 23-closures.go create mode 100644 24-recursion.go diff --git a/23-closures.go b/23-closures.go new file mode 100644 index 0000000..7de5b73 --- /dev/null +++ b/23-closures.go @@ -0,0 +1,18 @@ +package main + +import "fmt" + +func makeEvenGenerator() func() uint { + i := uint(0) + return func() uint { + i += 2 + return i + } +} + +func main() { + nextEven := makeEvenGenerator() + fmt.Println(nextEven()) + fmt.Println(nextEven()) + fmt.Println(nextEven()) +} diff --git a/24-recursion.go b/24-recursion.go new file mode 100644 index 0000000..c9cb09c --- /dev/null +++ b/24-recursion.go @@ -0,0 +1,14 @@ +package main + +import "fmt" + +func factorial(x uint) uint { + if x == 0 { + return 1 + } + return x * factorial(x-1) +} + +func main() { + fmt.Println(factorial(7)) +}