在函数内部使用变量

Dar*_*eth -2 variables haskell functional-programming function

假设我有一个称为“ Coord”的数据类型,其定义如下:

type Coord a = [(Int, Int)]
Run Code Online (Sandbox Code Playgroud)

我想创建一个类型为“ Coord”的变量以在下面的函数中使用。该函数接受Coord类型的变量,并将列表中每个项目的x坐标乘以2。然后将这些新坐标中的每一个存储在NEW Coord变量中。我不确定如何创建/声明/使用我打算返回的新变量。

foo :: (Eq a) => Coord a -> Coord a
Run Code Online (Sandbox Code Playgroud)

tha*_*guy 5

这将是对列表中的每个元素执行操作的手动方法:

type Coord = [(Int, Int)]

multiplyXBy2 :: Coord -> Coord
multiplyXBy2 [] = []
multiplyXBy2 ((x, y):rest) = (x*2, y) : multiplyXBy2 rest
Run Code Online (Sandbox Code Playgroud)

这是通过进行的调用ghci:

*Main> multiplyXBy2 [(1,2), (3,4)]
[(2,2),(6,4)]
Run Code Online (Sandbox Code Playgroud)

有关使用语言的基本知识,例如如何访问传递到函数中的列表元素或如何以编程方式构建列表,请考虑遵循诸如LYAH 在函数中的语法或RWH的定义类型,简化函数之类的教程。