<分区> 分区>
在 Haskell 中,我可以做到
Prelude> [(y*3, y+4) | x<-[0..5], let y=x^2]
[(0,4),(3,5),(12,8),(27,13),(48,20),(75,29)]
Python 中的等价物是什么,无需重复幂运算,正如我需要的那样
>>> [((x**2)*3, (x**2)+4) for x in range(5)]
[(0, 4), (3, 5), (12, 8), (27, 13), (48, 20)]
我当然可以用 lambda 模拟 Haskell 代码,但这感觉不太像 Pythonic...
>>> [(lambda y: (y*3, y+4))(x**2) for x in range(5)]
