在 Erlang 中转置二维矩阵

2023-11-22

给定如下所示的矩阵,将其变换 90 度,转换为下面的第二个矩阵。您将如何以最干净的方式做到这一点?首选简短/简洁/清晰的解决方案,其中要点易于掌握。

From

[[A1,A2,A3],
 [B1,B2,B3],
 [C1,C2,C3]]

To

[[A1,B1,C1],
 [A2,B2,C2],
 [A3,B3,C3]]

Edit:我意识到原来的问题并不清楚。我想知道如何做到这一点Erlang.


简化已经给出的解决方案,您可以用最短的时间完成:

-module(transp).

-export([transpose/1]).

transpose([[]|_]) -> [];
transpose(M) ->
  [lists:map(fun hd/1, M) | transpose(lists:map(fun tl/1, M))].
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Erlang 中转置二维矩阵 的相关文章

  • 在依赖类型的函数式编程语言中,扁平化列表是否更容易?

    在 haskell 中寻找一个可以展平任意深度嵌套列表的函数时 即应用的函数concat递归并在最后一次迭代时停止 使用非嵌套列表 我注意到这需要有一个更灵活的类型系统 因为随着列表深度的变化 输入类型也会变化 确实 有几个 stackov
  • 理解 Scala FP 库

    只是为了让那些想要开始使用 Scala FP 库 在纯 FP 方面变得更好的人快速清晰地了解 有人能澄清猫和猫效应 猫效应 IO 之间的区别 关系吗 最重要的是 齐奥和莫尼克斯对此有何看法 最后 与 ScalaZ 7 8 有何关系 到目前为
  • “功能性”Rust 对性能有哪些影响?

    我正在关注 Rust 轨道运动 io https exercism io 我有相当多的 C C 经验 我喜欢 Rust 的 功能 元素 但我担心相对性能 我解决了 行程编码 问题 https exercism io tracks rust
  • Erlang 应该如何处理通用数据?

    假设我正在使用 Erlang 构建游戏服务器 每个用户检查某些内容 例如找到最近的玩家 是很常见的 因此通常有一个管理器类 在上面的例子中 我们使用互斥锁 据我所知 Erlang 通常会为每个 TCP 连接 用户会话 创建新的 Erlang
  • 如何判断何时创建新组件?

    我一直在寻找背后的逻辑当有人在 AngularJS Angular 上的 Web 应用程序中创建新组件时但我认为这更通用 可能适用于所有基于组件的前端框架 我知道有像这样的一些原则应该是抽象的和可重用的但例如我在角度文档中看到 每个单独的路
  • 你能在 scala 中使用 varargs 柯里化一个函数吗?

    我正在考虑如何用可变参数柯里化一种方法 然后我意识到我什至不知道如何去做 理想情况下 它应该让您可以随时开始使用它 然后以可迭代结束 def concat strs String strs mkString val curriedConca
  • 函数式 Scala 中的选择排序

    我正在学习 Scala 编程 并编写了选择排序算法的快速实现 然而 由于我对函数式编程还不太了解 所以在转换为更 Scala 风格时遇到了困难 对于 Scala 程序员来说 如何使用 Lists 和 vals 来做到这一点 而不是回到我的命
  • 使用 Reader Monad 进行依赖注入

    我最近看到了谈话极其简单的依赖注入 http www youtube com watch v ZasXwtTRkio and 无需体操的依赖注入 http vimeo com 44502327关于 Monads 的 DI 并留下了深刻的印象
  • 如何在对象的多个方法上使用 functools.partial 并无序冻结参数?

    我发现 functools partial 非常有用 但我希望能够无序地冻结参数 您想要冻结的参数并不总是第一个 并且我希望能够将其应用于多个一次在类上使用方法 以创建一个代理对象 该对象具有与底层对象相同的方法 除了它的一些方法参数被冻结
  • duckmap 到底有什么作用?

    From 文档 https docs perl6 org routine duckmap duckmap将会应用 block每个元素上并返回一个新列表 其中包含块的已定义返回值 对于未定义的返回值 duckmap如果该元素实现了 将尝试下降
  • F# 静态成员类型约束

    我正在尝试定义一个函数 factorize 它使用类似于 Seq sum 的结构类型约束 需要静态成员 Zero One 和 以便它可以与 int long bigint 等一起使用 似乎无法获得正确的语法 并且无法找到有关该主题的大量资源
  • Haskell 中多核编程的现状如何?

    Haskell 中多核编程的现状如何 现在有哪些项目 工具和库可用 有哪些经验报道 2009年至2012年期间 发生了以下事件 2012 从 2012 年开始 并行 Haskell 状态更新开始出现在并行 Haskell 摘要 http w
  • 我可以在 Java 8 中使用 Clojure 函数作为 Lambda 函数吗?

    我在 Clojure 中使用了许多库来生成符合 Clojure lang IFN https github com clojure clojure blob master src jvm clojure lang IFn java 界面 它
  • Java泛型 - 实现像map这样的高阶函数

    我决定用 Java 编写一些常见的高阶函数 map filter reduce 等 这些函数通过泛型实现类型安全 但我在一个特定函数中遇到通配符匹配问题 为了完整起见 函子接口是这样的 The interface containing th
  • Haskell 中的“修复”是什么?为什么“修复错误”会打印无限字符串?为什么“拿 10 美元修复错误”也有同样的作用?

    长话短说 我在看西蒙 佩顿 琼斯的演讲 https www youtube com watch v re96UgMk6GQ 并且当时21 41 https youtu be re96UgMk6GQ t 1301他引用了一句话 我正在解决一个
  • 如何在erlang中读取mnesia数据库的所有记录?

    我是 erlang 新手 我需要对从 mnesia 数据库获取的所有记录进行一些操作 Result mnesia dirty read mydatabase key1 key2 case Result of gt DEBUG No such
  • 在 Erlang 中实现图灵机

    我有一个小项目 与实现图灵机非常相似 我遇到的基本问题是保存当前配置 例如头部的位置和更多信息 对我来说特别重要的是保留头部位置以使其向前或向后移动 Erlang 解决这个问题的方法是什么 我是 Erlang 新手 但据我探索 OTP ge
  • 如何使用 rxpy/rxjs 延迟事件发射?

    我有两个事件流 一个来自电感环路 另一个来自网络摄像机 汽车将驶过环路 然后撞上相机 如果事件彼此相差在 N 毫秒内 汽车总是会首先进入循环 我想将它们组合起来 但我也希望每个流中不匹配的事件 硬件可能会失败 全部合并到单个流中 像这样的事
  • 需要澄清令人困惑的 Http4s 消息类型 `Response[F]` / `Request[F]`

    我很难理解为什么Request and Response参数化为F 类似的东西是猫效应数据类型资源 从文档中 https typelevel org cats effect docs std resource https typelevel
  • 在同一迭代中过滤和映射

    我有一个简单的情况 我想过滤并映射到相同的值 如下所示 const files results filter function r return r file map function r return r file 为了节省代码行并提高性

随机推荐

  • 如何将整个图像作为壁纸适合屏幕上

    我正在开发一个应用程序 它从图库中选择一张图像 然后将该图像设置为壁纸 但这里的问题是 只有部分图像设置为壁纸而不是整个图像 但我想将整个图像设置为壁纸 你能告诉我该怎么做吗 这是我的代码 public class Scaleimage e
  • C++11 thread_local 变量自动静态吗?

    这两个代码段有区别吗 void f thread local vector
  • 使用 if 语句设置 javascript 变量 - 'var = x' 应该在 IF 内部还是外部?

    这可能是一个基本问题 但我很难找到答案 您想根据 var A 设置 var B 你会怎么做 var B if A red hot else cool 我认为这行不通 我想你可以做 if A red var B hot else var B
  • 四舍五入双打 - .5 - sprintf

    我使用以下代码四舍五入到 2dp sprintf temp 2f coef i coef i returns a double 成功将 6 666 舍入为 6 67 但舍入时无法正常工作 5 555 它返回 5 55 而它应该 至少在我看来
  • 是否有必要将动态数组的容量加倍?

    当在 C 中创建自动扩展数组 如 C 的 std vector 时 通常 或者至少是常见的建议 在每次填充时将数组的大小加倍 以限制调用的数量realloc为了尽可能避免复制整个数组 例如 我们首先为 8 个元素分配空间 插入 8 个元素
  • BackgroundWorker 中未处理的异常

    我有一个小型 WinForms 应用程序 它利用 BackgroundWorker 对象来执行长时间运行的操作 后台操作偶尔会引发异常 通常是当有人打开正在重新创建的文件时 无论代码是否从 IDE 运行 NET 都会弹出一个错误对话框 通知
  • 为什么我无法在 Rails 中创建数组作为表中的列?

    为什么我不能做这样的事情 class CreateModels lt ActiveRecord Migration def self up create table fruit do t t array apples end end end
  • R:从向量中提取非重复值(不保留重复值)[重复]

    这个问题在这里已经有答案了 我想保留向量中的非重复值 但不保留重复值中的一个元素 unique 对此不起作用 两者都不会重复 例如 gt test lt c 1 1 2 3 4 4 4 5 6 6 7 8 9 9 gt unique tes
  • 如何使用 dcast.data.table 并将公式作为字符串

    我想对 data table 使用强制转换 其中公式的列名作为字符串 我的桌子 c1 c2 c3 1 A 1 1 B 2 1 C 3 2 A1 1 2 B1 2 2 C1 3 我想要的结果是 c1 1 2 3 1 A B C 2 A1 B1
  • 在 C# 中将 Windows 窗体单选按钮与不同的父控件分组

    我有一个 Windows 窗体应用程序 其中有许多单选按钮 这些RadioButtons 被放置在流程布局面板它会自动为我安排它们 所有直接添加到 FlowLayoutPanel 的 RadioButton 都被分组 这意味着我只能选择其中
  • 洋葱架构中的依赖解析

    The 洋葱架构是一种构建应用程序以保持关注点分离和松散耦合的方法 示例项目位于 http onionarch codeplex com 依赖注入 解析是该架构的一个关键方面 因为它用于将所有层连接在一起 上面的链接包含一个有关如何使用 O
  • Java EE前端方法中处理服务层异常

    我维护一个 Web 应用程序 其中有一个带有 JSF 标签的页面
  • 生成 Word 文档时检索组件错误的 COM 类工厂

    我正在尝试从 VB NET 编辑 Word 文档 大部分使用以下代码 如何从 Visual Basic NET 自动创建 Word 来创建新文档 http support microsoft com kb 316383 它在我的机器上运行良
  • Vim 写入时自动命令 - 传递完整文件路径

    我想在 Vim 中保存文件时执行 bash 脚本 问题是我不知道如何才能 或者是否可以传递文件的完整路径 而不仅仅是文件名或打开的相对路径 这是我正在使用的代码 它可以工作 但是只有相对路径 这对我来说毫无用处 autocmd BufWri
  • 升级到 iPhone 3.0 sdk,现在模拟器显示黑屏

    我有一个使用 UITabBarController 的 iPhone 应用程序 其中包含两个 UINavigationController 每个 UINavigationController 又包含一个或多个 TableViewContro
  • 连接简单 x-y 图中的最终点和初始点(绘制闭合曲线/多边形)

    比如说 我有 x 1 1 2 2 y 1 2 2 1 plot x y b 我将得到一个包含连接点 1 1 1 2 和 2 2 的线的图 有没有办法将最后一个点与第一个点连接起来 从而完成绘图上的正方形 我还用点拉入文本行 因此简单地添加另
  • Android 10 (api 29) 中没有此类文件或目录

    我正在开发一个照片编辑器应用程序 在编辑我的图片后 我将其保存到本地存储中 它在 android 9 之前工作正常 但在 android 10 上则不然 它在 Android 10 中显示 找不到此类文件或目录 的异常 经过一些研究 我发现
  • 未找到 Visual Studio 2013 库中的实体框架

    当我尝试使用实体框架时 我在 Visual Studio 2013 的 Visual Basic 中遇到了一个相当不寻常的错误 无论我使用现有项目还是创建新项目 这都无关紧要 当我换了一台装有 Win 8 1 的新电脑时 这种情况就开始发生
  • 将 F# 引用转换为 LINQ 表达式

    我可以转换类型的报价Expr lt a gt b gt 通过以下代码片段连接到 Linq 表达式 Converts a F Expression to a LINQ Lambda let toLambda exp Expr let linq
  • 在 Erlang 中转置二维矩阵

    给定如下所示的矩阵 将其变换 90 度 转换为下面的第二个矩阵 您将如何以最干净的方式做到这一点 首选简短 简洁 清晰的解决方案 其中要点易于掌握 From A1 A2 A3 B1 B2 B3 C1 C2 C3 To A1 B1 C1 A2