Skip to content
Related Articles

Related Articles

Recursive Anonymous Function in Golang
  • Last Updated : 10 Jul, 2020

Recursion is a process in which a function calls itself implicitly or explicitly and the corresponding function is called recursive function. Go language supports special feature called anonymous function. It is a function that doesn’t contain any name. It is used to create an inline function. Recursive functions can be declared & defined as anonymous also. A recursive anonymous function is also known as recursive function literal.

Syntax:

func(parameter-list)(return-type){
// code..
// call same function
// within the function
// for recursion
// Use return statement only
// if return-type are given.
return
}()

Example:




// Golang program to show
// how to create an recursive
// Anonymous function
package main
  
import "fmt"
  
func main() {
  
    // Anonymous function
    var recursiveAnonymous func()
    recursiveAnonymous = func() {
      
        // Printing message to show the
        // function call and iteration.
        fmt.Println("Anonymous functions could be recursive.")
          
        // Calling same function 
        // recursively
        recursiveAnonymous()
  
    }
      
    // Main calling of
    // the function
    recursiveAnonymous()
  
}

Output:

Anonymous functions could be recursive.
Anonymous functions could be recursive.
Anonymous functions could be recursive.
Anonymous functions could be recursive.
.
.
.
.
Infinite times function calls.

Example 2:




// Golang program to show
// how to create an recursive
// Anonymous function
package main
  
import (
    "fmt"
)
  
func main() {
  
    // Anonymous function
    var recursiveAnonymous func(int)
      
    // Passing arguments
    // to Anonymous function
    recursiveAnonymous = func(variable int) {
      
        // Checking condition
        // to return
        if variable == -1 {
          
            fmt.Println("Welcome to Geeks for Geeks!")
            return
        } else {
          
            fmt.Println(variable)
              
            // Calling same
            // function recursively
            recursiveAnonymous(variable - 1)
        }
    }
      
    // Main calling
    // of the function
    recursiveAnonymous(10)
}

Output:

10
9
8
7
6
5
4
3
2
1
0
Welcome to Geeks for Geeks!



My Personal Notes arrow_drop_up
Recommended Articles
Page :