haskell - 如何在另一个函数的结果列表上使用 map ?
问题描述
mean :: (Real a, Fractional b) => [a] -> b
mean xs = (realToFrac(sum xs) / realToFrac(length xs))
sqDiff1 :: (Fractional b, Real b) => [b] -> [b]
sqDiff1 xs = map(subtract (mean xs))xs
sqDiff2 :: Num b => (t -> [b]) -> t -> [b]
sqDiff2 sqDiff2 xs = map(^ 2)(sqDiff2 xs)
sqDiff1 从每个元素中减去列表的平均值。
基本上我想要做的是平方 sqDiff1 的元素。
我怎样才能做到这一点?
解决方案
如果您只想计算与该函数的差异,则不需要函数参数:
sqDiff2 :: Real b => [b] -> [b]
sqDiff2 xs = map (^ 2) (sqDiff1 xs)
如果您真的想要一个函数参数,请传递您要使用的参数:
*Main> sqDiff2 sqDiff1 [1,2,3,4,5,6]
[6.25,2.25,0.25,0.25,2.25,6.25]
推荐阅读
- c# - EF 迁移后 NPGSQL MapEnum 失败
- java - EmbeddableId 应该映射为 insert="false" update="false"
- php - 谁有一个使用 PHP 7.2 Memcached 工作的 Easy Apache 4 Experimental Repo?
- javascript - 如何通过Javascript播放带有If条件的音频
- r - 将因子转换为数字后保留变量名称
- c# - 没有“检测到无法访问的代码”——Visual Studio 中返回后出现新异常的警告
- javascript - 将冻结对象保持为全局状态
- git - git:从远程分支签出更改本地文件?
- php - jqGrid - 编辑表单时在网格重新加载时保持选中复选框
- javascript - 使用 REST 将图像文件上传到服务器时,上传的文件与原始客户端文件不匹配