haskell上点之间的距离

2023-12-26

我是 haskell 新手,我必须做一个函数,它接受一个列表并递归计算距离。

For example:
distance [(0,0),(2,0),(2,5)]
->7
distance [(1,1),(3,4)]
->3.6055512

我这样设置了两点之间的距离

distance (x1 , y1) (x2 , y2) = sqrt 
(x'*x' + y'*y')
where
  x' = x1 - x2
  y' = y1 - y2

但不知道如何使用可变列表大小来做到这一点,谢谢


我们可以将这个函数重命名为distance2指定它计算两点之间的距离:

distance2 :: Floating a => (a, a) -> (a, a) -> a
distance2 (x1 , y1) (x2 , y2) = sqrt (x'*x' + y'*y')
    where x' = x1 - x2
          y' = y1 - y2

接下来我们可以利用zipWith :: (a -> b -> c) -> [a] -> [b] -> [c] https://hackage.haskell.org/package/base-4.12.0.0/docs/Prelude.html#v:zipWith同时迭代两个列表,并对元素应用函数。这里我们迭代列表及其尾部。这将产生一个距离列表。我们可以利用sum :: (Num a, Foldable f) => f a -> a https://hackage.haskell.org/package/base-4.12.0.0/docs/Prelude.html#v:sum总结这些距离:

distance2 :: Floating a => [(a, a)] -> a
distance [] = 0
distance xa@(_:xs) = sum (zipWith distance2 xa xs)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

haskell上点之间的距离 的相关文章

  • 我们不应该使用单子绑定来使用循环写下 mfix 的情况

    我一直在尝试写mfix向下使用Control Arrow loop https hackage haskell org package base 4 14 0 0 docs src Control Arrow html loop 我想出了不
  • 应用交换律

    带有效果的应用程序编程 http staff city ac uk ross papers Applicative html麦克布莱德和帕特森的论文提出了互换法 u lt gt pure x pure f gt f x lt gt u 为了
  • Haskell 真的是纯粹的吗(有任何语言可以处理系统外的输入和输出)吗?

    在谈到函数式编程中的 Monad 后 该功能是否真的使语言变得纯粹 或者它只是黑板数学之外的现实世界中计算机系统推理的另一张 免狱卡 EDIT 这不是有人在这篇文章中所说的火焰诱饵 而是一个真正的问题 我希望有人能用它来击倒我并说 证明 它
  • Haskell printf 转字符串

    Haskell 中有等效的 sprintf 吗 我需要将双精度值转换并格式化为字符串 有没有其他方法而不使用printf什么样的功能 主要问题是要避免 Prelude gt putStrLn myDoubleVal 1 7944444444
  • 在 R 中使用 k-NN 和分类值

    我希望对主要具有分类特征的数据进行分类 为此 欧几里得距离 或任何其他数值假设距离 不适合 我正在寻找 R 的 kNN 实现 其中可以选择不同的距离方法 例如汉明距离 有没有一种方法可以使用常见的 kNN 实现 例如具有不同距离度量函数的
  • 如何找到仅是 2、3 和 5 的幂的倍数的所有数字的列表? [复制]

    这个问题在这里已经有答案了 I am trying to generate a list of all multiples which can be represented by the form where a b and c are w
  • 处理许多不相关的类型时避免样板

    我正在编写处理以下值的代码语言 扩展 注释 语法 http hackage haskell org packages archive haskell src exts 1 1 4 doc html Language Haskell Exts
  • 在python中查找地理数据中圆内的所有坐标

    我有数百万个地理点 对于其中的每一个 我想找到所有 邻近点 即某个半径 例如几百米 内的所有其他点 这个问题有一个简单的 O N 2 解决方案 简单地计算所有点对的距离 但是 因为我正在处理适当的距离度量 地理距离 所以应该有一种更快的方法
  • 对元组列表进行排序的函数 - Haskell

    抱歉 这个简单的问题只是我对 haskell 非常陌生 我正在尝试编写一个函数 order 它将对另一个函数 Frequency 生成的元组列表进行排序 频率计算列表中不同元素的数量 a给出一个这样的结果 比如 gt 频率 aabbbccc
  • 存在函数依赖关系时类型推断如何工作

    考虑下面的代码 LANGUAGE MultiParamTypeClasses FlexibleInstances FunctionalDependencies UndecidableInstances FlexibleContexts cl
  • 带有查询参数的渲染 url

    无法找到简单问题的解决方案 答案应该是显而易见的 如何在 hamlet 模板中使用查询参数渲染 url I e ItemsR 将生成http localhost 3000 items我如何生成类似的东西http localhost 3000
  • 如何处理“恐慌:不可能的事情发生了”并在 Haskell 中继续

    我有以下代码 它使用 GHC API 加载模块并获取表达式的类型 typeObjects String gt String gt IO Type typeObjects modules objects do defaultErrorHand
  • 有没有办法在 Emacs 中使用 Djinn 自动生成 Haskell 代码?

    标题几乎说明了一切 我正在寻找这样的东西 f Int gt Bool gt Int f body Djinn 可以使用定理证明来通过证明该类型存在来生成此类函数的代码 我想知道 是否有现有的方法可以从 Emacs 中获取此功能 因此 我不需
  • Haskell 和 Idris 之间的区别:类型宇宙中运行时/编译时的反映

    因此 在 Idris 中 编写以下内容是完全有效的 item b Bool gt if b then Nat else List Nat item True 42 item False 1 2 3 cf https www youtube
  • 使用 Haskell 将函数注入到 Java .class 文件中

    我使用 Haskell 编写了一个 Java 字节码解析器 它工作得很好 然而下一步让我完全难住了 我的 Haskell 程序需要修改 class 文件 以便在执行时 Java 程序打印 输入 此处的方法名称 在执行方法之前 并且 退出 此
  • Haskell 排列库函数 - 请澄清一下?

    这是代码permutationsHaskell 中的函数Data List module permutations a gt a permutations xs0 xs0 perms xs0 where perms perms t ts i
  • Haskell 类型定义,=> 等

    我正在使用 Learn You a Haskell 来学习 Haskell 第 54 页上有一个 像这样执行 take Num i Ord i gt i gt a gt a take n n lt 0 take take n x xs x
  • Haskell 中实例声明的参数顺序切换

    我想进行实例声明 但自由类型变量不是最后一个变量 例如 我有一个类声明 class Poppable m where tryPop m a gt Maybe a m a 现在我想让 Q PSQ 优先级队列 成为 Poppable 的实例 具
  • Django TastyPie 地理距离查找

    我正在使用 TastyPie 进行地理距离查找 这有点困难 因为 TastyPie 官方不支持它 在 Github https gist github com 1067176 上我找到了以下代码示例 def apply sorting se
  • Haskell:从后面访问列表

    今天我开始学习Haskell 我对函数式语言有点陌生 而且我非常喜欢 Haskell 然而 我有一个关于它的设计的问题困扰着我 从我到目前为止的理解来看 访问列表后面的元素似乎比访问前面的元素要复杂得多 类似于xs x where xs a

随机推荐

  • ByVal 与 ByRef VBA

    我尝试过 JaredPar 回答的问题ByRef 与 ByVal 说明 https stackoverflow com questions 4383167 byref vs byval clarification ByVal在 VB NET
  • ant 构建文件设置 javac 位置

    我正在编辑一个旧项目的构建文件 当我向使用 Java 1 6 的项目添加一些 jar 文件时 它不会构建 它说 javac javac invalid target release 1 6 很明显 我需要告诉 ant 构建文件使用 java
  • 在 C++0x 中专门化 lambda 模板

    我编写了一个特征类 它可以让我提取有关 C 0x 中函数或函数对象的参数和类型的信息 使用 gcc 4 5 0 进行测试 一般情况处理函数对象 template
  • linux下可以分配大容量的虚拟内存吗?

    对于某些目的来说 分配大量的虚拟空间并仅在访问的页面中进行分页会很有效 分配大量内存是瞬时的 并且不会实际抓取页面 char p new char 1024 1024 1024 256 好吧 上面指出的是错误的 因为它是一个 32 位数字
  • Python 评估错误

    x 5 print eval x 1 builtins None 出现错误 TypeError NoneType object is not subscriptable 为什么我会出现上述错误 另外 如何为 eval 函数指定几个内置方法
  • Ruby、Mac、Geektool 问题,文件访问权限?

    我有一个内置的 Ruby 脚本TextMate http en wikipedia org wiki TextMate并可以在TextMate中成功运行 我还可以直接从终端成功运行此脚本 该脚本中有这样一段代码 Get the XML fi
  • Struts 2.0从服务器下载文件

    我已经创建了下载方法来从服务器端下载文件到客户端 但是出现了此错误 文件已成功下载到客户端 但我有此错误 所以我无法正确返回到上一页 这是我的错误 SEVERE Servlet service for servlet default thr
  • 如何传递表值参数

    我试图将表值参数传递给存储过程 但我不断收到异常 见下文 SqlCommand c new SqlCommand getPermittedUsers myConn CommandType CommandType StoredProcedur
  • 之后如何使导入的目标成为GLOBAL?

    来自FindBoost cmakeCMake 3 8的模块 foreach COMPONENT Boost FIND COMPONENTS if Boost IMPORTED TARGETS AND NOT TARGET Boost COM
  • Ocaml utop 库路径,核心模块

    我正在尝试使用Core模块输入utop 由 Jane Street 发起并使用安装opam 问题是这样的 utop open Core Std Error Unbound module Core utop似乎没有通往Core module
  • 为什么谷歌搜索返回的结果不包含我搜索的字符串? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我认为谷歌搜索不再运作良好 我不断收到不包含我要求的搜索字符串的网页 例如 我刚刚在谷歌主搜索窗口中输入 check if a vecto
  • 文本插入光标(插入符号)出现在移动浏览器中其他元素上方

    当将焦点放在文本上时input在移动浏览器中 在 iOS Safari 和 Chrome 上测试 文本插入符号出现在任何文本的顶部div放在上面 这是一个快速 简单的示例 http jsfiddle net XQf8N http jsfid
  • 在 mysql 中使用 SUM 进行多个连接

    我一直在寻找解决方案 有很多类似的问题 但没有一个有任何正确的答案可以帮助我解决问题 首先 我的问题 问题 我想对多重连接查询中的某些列进行求和和计数 多重连接是不可能的吗 我必须筑巢吗SELECT查询 下面是我的数据库的 SQL 转储以及
  • 如何将元素添加到 Hibernate 中的延迟加载集合而不导致集合加载?

    罐头上写着什么 我想在 Hibernate 中修改集合而不强制加载集合 因为它的数据量很大 约 100 000 条记录 单调递增 现在 我通过调用向此列表添加一个元素getEvents add newEvent 这当然会导致events被填
  • AWS Athena 中的文件系统上缺少表

    我在 Athena 上使用此代码创建了一个具有自动分区的表 CREATE EXTERNAL TABLE IF NOT EXISTS matchdata stattable matchResult string PARTITIONED BY
  • 在 ApexCharts.js 中制作直方图

    我正在尝试使用 ApexCharts 创建直方图 更具体地说 React ApexCharts 但我认为这没有什么区别 Example of the output I m after The example above was origin
  • 在 AMD GPU 中使用 Python+Theano 和 OpenCL

    我正在尝试将 Python 与 Theano 结合使用 以通过 OpenCL 加速某些代码 我安装了libgpuarray and pygpu按照指示 我认为 并且没有错误 安装检测到已安装 OpenCL 运行时 我只是无法运行 OpenC
  • 对特定列使用 DISTINCT

    select distinct employee id first name commission pct department id from employees 当我使用上面的查询时 它会产生所提到的所有属性的不同组合 由于employ
  • doc_count_error_upper_bound在elasticsearch中的意义是什么以及如何将其最小化?

    我总是在 elasticsearch 上的聚合查询中得到很高的值doc count error upper bound属性 对于拥有近 10 亿个文档索引的 ES 集群 有时会高达 8000 或 9000 我对大约 5M 文档的索引运行查询
  • haskell上点之间的距离

    我是 haskell 新手 我必须做一个函数 它接受一个列表并递归计算距离 For example distance 0 0 2 0 2 5 gt 7 distance 1 1 3 4 gt 3 6055512 我这样设置了两点之间的距离