title: Define a recursive function within a function in Go
body: <p>I am trying to define a recursive function within another function in Go but I am struggling to get the right syntax. I am looking for something like this:</p>
  
  <pre><code>func Function1(n) int {
     a := 10
     Function2 := func(m int) int {
        if m &lt;= a {
           return a
        }
        return Function2(m-1)
     }
  
     return Function2(n)
  }
  </code></pre>
  
  <p>I'd like to keep Function2 inside the scope of Function1 as it is accessing some elements of its scope.</p>
  
  <p>How can I do this in Go?</p>
  
  <p>Many thanks</p>