Haskell 使用do符号分配列表/元组
我有一个函数f,它是这样的: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 = 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