通过将对象与[1..n]相乘来创建列表

问题描述 投票:-1回答:1

我仍然不喜欢Haskell,需要以下功能的提示。

我想通过添加一对的每个乘法来创建列表:

all :: Int -> (Int,Int) -> [(Int, Int)] 
all n, pair = ...

例如n = 3,对(1,2)=> [(1,2),(2,4),(3,6)]扩展为[(1 *(1,2)),((2 *(1,2)),(3 *(1,2))]

我对x <- [1..n]x*pair有所了解,但我不知道哪个内置函数适合将其放在一起!

list haskell combinatorics
1个回答
0
投票
您需要对元组中的元素分别进行乘法运算,然后重新创建一个元组。您可以使用fstsnd来获取元素。

all n pair = [(x*(fst pair), x*(snd pair)) | x <- [1..n]]

© www.soinside.com 2019 - 2024. All rights reserved.