List 具有可变输入数的Haskell发生器?

List 具有可变输入数的Haskell发生器?,list,haskell,recursion,List,Haskell,Recursion,目前,我的代码看起来有点像这样: gen (x:[]) = [[a] | a <- (someOp x)] gen (x:y:[]) = [[a,b] | a <- (someOp x), b <- (someOp y)] gen (x:y:z:[]) = [[a,b,c] | a <- (someOp x), b <- (someOp y), c <- (someOp z)] gen(x:[])=[[a]| a您可以递归执行此操作: gen [] = [[

目前,我的代码看起来有点像这样:

gen (x:[]) = [[a] | a <- (someOp x)]
gen (x:y:[]) = [[a,b] | a <- (someOp x), b <- (someOp y)]
gen (x:y:z:[]) = [[a,b,c] | a <- (someOp x), b <- (someOp y), c <- (someOp z)]

gen(x:[])=[[a]| a您可以递归执行此操作:

gen [] = [[]]
gen (x:xs) = [ a:g | a <- someOp x, g <- gen xs ]
gen[]=[]]

gen(x:xs)=[a:g | a对于您在此构造的函数,已经存在一个更通用的函数:。您的
gen
等效于:

gen = traverse someOp

gen=traverse someOp
您想做什么?将someOp应用于列表并将其放入第二个列表中?在函数中添加类型可能会对您有所帮助