我正在试着从向你学习Haskell中学习Haskell以获得更好的效果。我正在尝试构建一组函数来执行各种向量操作。我正在构建一个函数,它接受两个向量,并找到它们之间的角度。操作看起来像这样:A·B=A B cosθ
无论如何,现在我正在尝试编写一个函数,它将找到一个Vector的“值”。例如,2i + 3j + 4k的值是sqrt(2^2 + 3^2 + 4^2)。
向量是以列表的形式存储的,我想尝试一下这样的方法:
getValue (vector) = [sqrt v | v <- v + square take 1 vector]我该怎么做呢?
发布于 2012-07-06 01:38:39
假设您将向量表示为一个列表,那么:
getValue :: (Floating a) => [a] -> a
getValue = sqrt . sum . map (\i -> i * i)或者,您可以使用列表理解来对值进行平方:
getValue :: (Floating a) => [a] -> a
getValue vector = sqrt . sum $ [x * x | x <- vector]https://stackoverflow.com/questions/11349327
复制相似问题