News for hackers. Stuff that matters.
Re:WTFPython – Understanding Python through surprising snippets by loopz on Monday December 23, 2019 @09:49AM (#21863897)
Works intuitively in golang:

https://play.golang.org/p/pn2jBTaTNS8

  package main
  
  import (
   "fmt"
  )
  
  // return a^n
  func Power(a, n int) int {
   var i, result int
   result = 1
   for i = 0; i < n; i++ {
    result *= a
   }
   return result
  }
  
  func main() {
   fmt.Println("Hello, playground")
   x := 2
   var powers_of_x []int
   for i := 0; i < 10; i++ {
    powers_of_x = append(powers_of_x, func(x int) int { return Power(x, i) }(x))
   }
   fmt.Println(powers_of_x)
  }

  //Output:
  //Hello, playground
  //[1 2 4 8 16 32 64 128 256 512]
Re:WTFPython – Understanding Python through surprising snippets by gpderetta on Monday December 23, 2019 @10:38AM (#21864252)
I know nothing about go, but it seems to me in your example powers_of_x is a list of n integers, while in the example being discussed is an list of n functions (which can be used to compute the n'th power).
Re:WTFPython – Understanding Python through surprising snippets by masklinn on Monday December 23, 2019 @11:04AM (#21864505)
I provided a Go example demonstrating that it does not. Your version

1. uses a slice of integers which completely misses the point

2. uses an IIFE which completely misses the point

The point is to look at what happens when you close over the iteration variable.