From 662e044c2c8a324fae9b618a2c36366d20a7b9d5 Mon Sep 17 00:00:00 2001 From: Zakaria Date: Tue, 8 Sep 2026 13:19:05 -0400 Subject: [PATCH] learning closure | IMPORTANT (revisit) --- closures/go.mod | 3 +++ closures/main.go | 20 ++++++++++++++++++++ 2 files changed, 23 insertions(+) create mode 100644 closures/go.mod create mode 100644 closures/main.go diff --git a/closures/go.mod b/closures/go.mod new file mode 100644 index 0000000..e092793 --- /dev/null +++ b/closures/go.mod @@ -0,0 +1,3 @@ +module main + +go 1.27.0 diff --git a/closures/main.go b/closures/main.go new file mode 100644 index 0000000..962248e --- /dev/null +++ b/closures/main.go @@ -0,0 +1,20 @@ +package main + +import ( + "fmt" +) + +func fib() func() int { + a, b := 0, 1 + return func() int { + a, b = b, a+b + return b + } +} + +func main() { + f := fib() + for x := f(); x < 100; x = f() { + fmt.Println(x) + } +}