相关疑难解决方法(0)

如何在Haskell中将列表作为单个参数“解包”?

Haskell中是否有内置或惯用的方式来“解压缩”列表中的元素并将其视为函数的单独参数?

例如,如果我f :: a -> b -> c -> d -> e有一些紧凑的东西,例如

f (unlist x)
Run Code Online (Sandbox Code Playgroud)

完成

let x = [1,2,3,4] in f (x!!0) (x!!1) (x!!2) (x!!3) 
Run Code Online (Sandbox Code Playgroud)

或至少以一种“减少”(!!重复次数过多)的方式来解压缩通常已知长度的列表(这样,在这种情况下,它可以用作函数的参数)。


本质上,我正在寻找的东西类似于Sequence@@Mathematica:

f[Sequence@@{1, 2, 3, 4}]
Run Code Online (Sandbox Code Playgroud)

syntax haskell functional-programming parameter-passing

6
推荐指数
1
解决办法
1530
查看次数