Haskell 使用do符号分配列表/元组

Haskell 使用do符号分配列表/元组,haskell,functional-programming,Haskell,Functional Programming,我有一个函数f,它是这样的: f = do x1 <- g x2 <- g x3 <- g ... xn <- g return [x1,x2,x3,..., xn] --or (x1,x2,x3,..., xn) f = do [x,y,z] <- [g,g,g] return [x,y,z] f=do x1使用和: f=do xs@Zeta解决方案的一个简单版本是

我有一个函数f,它是这样的:

f = do
      x1 <- g
      x2 <- g
      x3 <- g
      ...
      xn <- g
      return [x1,x2,x3,..., xn] --or (x1,x2,x3,..., xn)
f = do
      [x,y,z] <- [g,g,g]
      return [x,y,z]
f=do
x1使用和:

f=do

xs@Zeta解决方案的一个简单版本是:

import Control.Monad

f = replicateM n g

谢谢这让我找到了一个更漂亮的解决方案。如果使用ReplicateTem,则不需要序列。实际上,只需
sequence$replicate ng
do
语法在这里是完全无关的。在本例中是这样,但我在代码中做的远不止返回列表。
import Control.Monad

f = replicateM n g