Haskell中是否有一个函数或函数接受n个参数,并返回一个n元组?例如:
make3tuple:: a -> a -> a -> (a,a,a)
make3tuple a b c = (a,b,c)
Run Code Online (Sandbox Code Playgroud)
即:像逗号,但两个以上的参数.显然make3tuple完成了这项工作,但我觉得必须有一个内置的方法来做到这一点,我没有找到它,或者错过某种方式来使用其他无处不在的功能.
FWIW,这在使用liftM3(或更高)时出现.例如:
type RandomState a = State StdGen a
[...]
getTwoRandoms = liftM2 (,) getRandom getRandom
get3Randoms = liftM3 make3tuple getRandom getRandom getRandom
Run Code Online (Sandbox Code Playgroud)
谢谢!
ami*_*dfv 13
是.
(,,) :: a -> b -> c -> (a, b, c)
(,,,) :: a -> b -> c -> d -> (a, b, c, d)
Run Code Online (Sandbox Code Playgroud)
等等
所以你可以写 liftM3 (,,) getRandom getRandom getRandom
Haskell编译器提供这样的函数到一定的大小(我认为保证是15元组)