Haskell - 将列表转换为带索引的对象列表
Haskell - Turning a list into a list of object with index
我在 Haskell 中有一个列表,其中包含一些点的坐标,例如:
[[5.8,2.7,4.1,1.0],[6.2,2.2,4.5,1.5],[5.6,2.5,3.9,1.1]]
已经创建了“点”数据类型
data Point = Point {
pointSelf :: Int,
coordinates:: [Float]
} deriving (Show)
我想把那个列表[[Float]]变成一个[Point]的列表,属性"pointSelf"是他的索引,我应该怎么做?
我对 Haskell 和函数式编程有点陌生...
您可以使用zipWith :: (a -> b -> c) -> [a] -> [b] -> [c]
同时枚举两个列表,并对列表的两个项目应用一个函数。因此,您可以构造 Point
s:
<strong>zipWith Point [0 ..]</strong> myCoords
和myCoords
坐标列表,所以对于样本数据,myCoords
是[[5.8,2.7,4.1,1.0],[6.2,2.2,4.5,1.5],[5.6,2.5,3.9,1.1]]
。
我在 Haskell 中有一个列表,其中包含一些点的坐标,例如:
[[5.8,2.7,4.1,1.0],[6.2,2.2,4.5,1.5],[5.6,2.5,3.9,1.1]]
已经创建了“点”数据类型
data Point = Point {
pointSelf :: Int,
coordinates:: [Float]
} deriving (Show)
我想把那个列表[[Float]]变成一个[Point]的列表,属性"pointSelf"是他的索引,我应该怎么做?
我对 Haskell 和函数式编程有点陌生...
您可以使用zipWith :: (a -> b -> c) -> [a] -> [b] -> [c]
同时枚举两个列表,并对列表的两个项目应用一个函数。因此,您可以构造 Point
s:
<strong>zipWith Point [0 ..]</strong> myCoords
和myCoords
坐标列表,所以对于样本数据,myCoords
是[[5.8,2.7,4.1,1.0],[6.2,2.2,4.5,1.5],[5.6,2.5,3.9,1.1]]
。