在Haskell中逐个元素地相乘两个列表

9 haskell list

如何在Haskell中将两个列表的元素相乘,两个一个?基本上如果我有[1,2,3]和[2,3,4]我想得到[2,6,12].

Tom*_*rst 36

zipWith (*) [1,2,3] [2,3,4]
Run Code Online (Sandbox Code Playgroud)

查找功能如一个有用的方法zipWithHoogle.在那里,您可以输入您正在寻找的函数的类型,它将尝试在标准库中查找匹配的函数.

在这种情况下,您正在寻找一个函数,使用组合函数将两个Ints列表Int组合成一个s列表(*),因此这将是您的查询:(Int - > Int - > Int) - > [Int] - > [Int ] - > [Int].如果您更改参数的顺序,Hoogle甚至会找到正确的函数.

  • 更重要的是,在这种情况下(由于zip的实际类型是(a - > b - > c) - > [a] - > [b] - > [c]),Hoogle将使用任何泛型类型参数统一您的查询... (4认同)