bhylu.com

Advertisements

Go Recursion

Follow a small chain of nested parcel bags with an explicit stopping rule.

How it works

A recursive function calls itself on a smaller problem. It needs a base case and progress toward that case. Go does not promise tail-call elimination, so deep unbounded recursion can exhaust resources. Prefer an ordinary loop when it expresses the task more simply.

Run this Go example

Install Go separately from the official Go downloads and check go version in a new terminal. The reviewed baseline is Go 1.27.3 on Windows amd64; the authored syntax and standard-library APIs require Go 1.22 or newer. Save the complete source below as recursion.go in a learning folder, then run go run recursion.go from that folder. These examples use only the standard library.

Bhylu has no Go browser runner. Apache, MySQL, PHP and the JavaScript or Python playground are not required to run these files. File examples own a temporary directory; HTTP client examples create an ephemeral loopback server and close it. They do not contact an external API.

Download the complete recursion.go · Download all source files with hash checks

For the optional collection download, save download-examples.mjs in a new learning folder and run node download-examples.mjs. A local preview uses node download-examples.mjs http://127.0.0.1:8000/examples/go/. The downloader refuses an existing bhylu-go-examples folder and installs or executes no Go code.

Example

recursion.go

package main

import (
	"fmt"
)

func nestedCount(level int) int {
	if level <= 0 {
		return 0
	}
	return level + nestedCount(level-1)
}

func main() {
	fmt.Println(nestedCount(4))
}

Expected result

10

The helper computes 4 + 3 + 2 + 1 and stops at zero. This is a small illustration, not an efficient general-purpose summation method. A real parser must bound both nesting depth and total input size.

For language rules and APIs, use the Go language specification and standard-library documentation. The fictional examples are learning fixtures, not a deployed parcel service.

Advertisements