在 Erlang 中将列表拆分为相同大小的块

2023-12-23

我想分割:

[1,2,3,4,5,6,7,8]

into:

[[1,2],[3,4],[5,6],[7,8]]

它通常适用于:

[ lists:sublist(List, X, 2) || X <- lists:seq(1,length(List),2) ] .

但这样确实很慢。在我的上网本上,10000 个元素需要惊人的 2.5 秒。我还编写了一个非常快的递归函数,但我只是感兴趣:这个列表理解是否也可以用不同的方式编写,以便它更快?


尝试这个:

part(List) ->
        part(List, []).
part([], Acc) ->
        lists:reverse(Acc);
part([H], Acc) ->
        lists:reverse([[H]|Acc]);
part([H1,H2|T], Acc) ->
        part(T, [[H1,H2]|Acc]).

在 erlang-shell 中测试(我已经在模块中声明了这个函数part):

2> part:part([1,2,3,4,5,6,7,8]).
[[1,2],[3,4],[5,6],[7,8]]
3> 
3> timer:tc(part, part, [lists:seq(1,10000)]).
{774,
 [[1,2],
  [3,4],
  [5,6],
  [7,8],
  "\t\n","\v\f",
  [13,14],
  [15,16],
  [17,18],
  [19,20],
  [21,22],
  [23,24],
  [25,26],
  [27,28],
  [29,30],
  [31,32],
  "!\"","#$","%&","'(",")*","+,","-.","/0","12","34",
  [...]|...]}

仅 774 微秒(约 0.8 毫秒)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Erlang 中将列表拆分为相同大小的块 的相关文章

  • Erlang 代码的持续集成服务器

    您使用什么类型的敏捷工具进行 Erlang 开发 什么持续集成 http en wikipedia org wiki Continuous integration您使用 CI 服务器来构建 Erlang 代码吗 我得到的唯一参考来自 Quo
  • Erlang 中事件流(又名 CEP)的实时关联/分析有什么框架吗?

    想要分析具有某些特征 例如公共来源 的事件流 并在给定的时间窗口内 最终将这些多个事件关联起来并从中得出一些推论 最后启动一些操作 我对复杂事件处理 CEP 的有限了解告诉我 它是此类事情的理想选择 然而 在我迄今为止的研究中 我发现人们将
  • 在 Windows 上编译 Erlang 代码

    我安装了 Erlang 13B 并尝试按照教程进行操作 每次我到达c tut 我得到一个错误而不是 ok tut 所以看起来没有安装任何模块 有人能指出我正确的方向吗 我尝试过 Emacs 但我真的不知道如何使用它 甚至还没有接近让 Erl
  • 如何在 Erlang 中将 XML 转换为元组列表?

    我正在尝试从 XML 创建键 值对元组 我想从任何嵌套的 XML 中列出一个列表 这似乎是一件很常见的事情 但我找不到任何例子 例如
  • Elixir / Erlang Dialyzer:为什么行为回调的参数类型应该是子类型而不是超类型?

    我有一个行为 X 和一个参数类型的回调函数 a any 模块 Y 实现行为 X 实现模块 Y 中的回调函数具有参数类型 a any b any Dialyzer 不喜欢这样并抱怨 a b gt is not a supertype of a
  • RabbitMQ 失败,错误:无法连接到节点rabbit@TPAJ05421843:nodedown

    在 Windows 7 Enterprise 计算机上 我全新安装了 Erlang 17 4 和 RabbitMQ 3 4 3 x64 安装成功且顺利 我还没有尝试创建我的第一个队列或交换器 但我已经看到了麻烦 这个问题类似于另一个SO帖子
  • 如何从数字列表中获取字符串?

    我有一个 Erlang 符号列表 104 105 106 107 如何从此列表中获取字符串 hijk Erlang 中不存在字符串这种数据类型 Stings 只是字符列表 104 105 106 107 and hijk 是完全等价的 事实
  • ejabberd 和 Erlang 安装,lager_transform 未定义

    我是 Erlang 新手 我一直在尝试在 EC2 ubuntu 机器上安装 Erlang 和 ejabberd 一切都很顺利 直到我开始编译一些外部模块ejabberd 它开始抛出错误undefined parse transform la
  • 我们如何有效地处理 mnesia 记录的时间相关约束?

    我正在将记录写入mnesia 该记录应该保存在那里 仅在允许的时间 24 小时 内 24小时后 在用户修改其中的一部分之前 系统应该自动删除它们 例如 用户获得免费通话时间 用于语音通话 他们应该在给定时间内使用它们 如果他们不使用它 24
  • Erlang 参与者与 OOP 对象有何不同?

    假设我有一个 Erlang actor 定义如下 counter Num gt receive From increment gt From self new value Num 1 counter Num 1 end 同样 我有一个 Ru
  • Mnesia:如何同时锁定多行,以便我可以写入/读取一组“一致”的记录

    我多么希望我一开始就能表达我的问题 取一个包含 26 个键 a z 的表 并让它们具有整数值 创建一个流程 哎哟 一遍又一遍地做两件事 在一笔交易中 写入随机值a b and c使得这些值always总和为 10 在另一个事务中 读取值a
  • 使用自定义 mysql 模式的模块扩展 ejabberd?

    代替ejabberd sql https github com processone ejabberd blob master sql mysql sql L95 我正在使用自定义 MySQL 架构 由于遗留原因 我将对某些活动执行一些数据
  • Erlang 中的接受器池和负载平衡?

    From http www erlang org doc man gen tcp html accept 1 http www erlang org doc man gen tcp html accept 1 值得注意的是 accept 调
  • 如何在 erlang 中安装模块?

    我是 Erlang 新手 想知道如何安装第三方模块以在我的 Web 应用程序中使用 您将这些文件放在哪里以及执行什么类型的命令 如果您希望在系统范围内安装第 3 方库 例如 Mochiweb 最好将其设置在 ERL LIBS 环境变量下 我
  • 如何在 Erlang 中将整数列表连接到字符串?

    我有这个元组 如下所示 127 0 0 1 现在我想将该元组作为字符串传递 127 0 0 1 到外部库 地理 IP 库 将此元组转换为字符串的最佳方法是什么 您可以随时使用inet parse ntoa 1 1 gt inet parse
  • 如何在erlang中读取mnesia数据库的所有记录?

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

    我有一个小项目 与实现图灵机非常相似 我遇到的基本问题是保存当前配置 例如头部的位置和更多信息 对我来说特别重要的是保留头部位置以使其向前或向后移动 Erlang 解决这个问题的方法是什么 我是 Erlang 新手 但据我探索 OTP ge
  • gen_server中的数据在supervisor重启后还会保留吗?

    我有一个启动许多 gen server 的主管 每个 gen server 都有大量的数据加载 这需要花费大量的时间 我想知道当错误发生时 存储在 gen server 状态及其进程字典中的数据是否会保留以供下次启动 这样我就不需要再次初始
  • Erlang:查找我的 IP 地址

    我正在尝试使用 Redis 完成负载均衡器 登录服务器 游戏服务器的某些部分设置 负载均衡就是其中之一 在我的 Redis 负载平衡实例中 我使用有序集 关键是应用程序名称 成员是游戏服务器的 IP 地址 这就是我的问题 我想在 erlan
  • Erlang 中的静态类型检查

    我慢慢地爱上了 Erlang 但只有一个很大很大的问题 我非常喜欢 Standard ML 和 ocaml 等语言 它们具有强大的静态类型检查功能 有没有一种好的 干净的方法来在 erlang 中引入某种静态类型检查 我正在看 type a

随机推荐

  • byte[] 数组上的 GetHashCode()

    什么是GetHashCode 调用时计算byte 大批 具有相同内容的 2 个数据数组不提供相同的哈希值 NET 中的数组不会覆盖Equals or GetHashCode 因此您将获得的值基本上基于引用相等性 即默认实现Object 为了
  • 等待动画、渲染完成 - XAML 和 C#

    我遇到的情况是 我正在对 XAML 应用程序的一部分进行动画处理 并且我需要等待动画和渲染完成 然后才能继续编写代码 到目前为止 我的函数的尾部如下所示 ProcExpandCollapse Begin while ProcExpandCo
  • SQL-如何选择具有最大值的列的行[重复]

    这个问题在这里已经有答案了 date value 18 5 2010 1 pm 40 18 5 2010 2 pm 20 18 5 2010 3 pm 60 18 5 2010 4 pm 30 18 5 2010 5 pm 60 18 5
  • Laravel 如何检查验证唯一表两个字段

    我有 tableA 有 2 个字段 1 song id 2 playlist id 我想检查 laravel 验证独特的功能 示例 我已插入数据 id gt 1 song id gt 2 playlist id gt 34 然后我必须再次插
  • 仅删除给定字符串中的第一个单词

    我正在尝试从给定字符串中删除第一个单词 到目前为止我已经完成了 word removeMe meow whatever needle removeMe haystack To replace with word str replace ne
  • 同一域中 IE9 中的 Script5 访问被拒绝

    我正在 django 中开发一个网站 它使用 jquery 多文件上传插件 当我注册到我的网站时 一封确认电子邮件会发送到我的 Gmail 帐户 我单击激活链接 我的网站将在新选项卡中打开 我登录 然后尝试上传文件 但在 IE9 中失败 F
  • Rcpp:错误:与请求的类型不兼容

    我有这个 C 代码 include
  • 独特的词典列表

    假设我有一个字典列表 id 1 name john age 34 id 1 name john age 34 id 2 name hanna age 30 如何获取唯一词典的列表 删除重复项 id 1 name john age 34 id
  • 源更改时如何重建 Node.js 插件

    我有一个 node js 应用程序 并且创建了一个本机插件 如果您需要背景信息 可以创建 Node js 的本机插件像这样 https nodejs org api addons html 在我的开发环境中 我希望它监视源文件 在本例中是
  • 在 RelaxNG 中将元素定义为非空

    我已经开始使用 RelaxNG 来指定 XML 消息模式 并使用 PHP DOMDocument 来验证和解析传入消息 但无法弄清楚如何定义文本节点以使其不能为空 示例架构
  • Phonegap Android 文件传输错误代码 3

    我正在开发 Android 移动应用程序 它使用 Dave Johnson 的 Facebook Connect 插件 https github com davejohnson phoneg https github com davejoh
  • 如何对二维列表进行排序? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我有以下类型的列表 lst 1 0 23 2 0 39 4 0 31 5 0 27 我想按第二列的降序对其进行排序 我尝试过内置sorte
  • 在 Coldfusion / Apache POI 中强制完整计算整个工作簿

    给定一个工作簿 其中包含由以下方法生成的跨表公式Coldfusion 9 via Apache POI 我想以编程方式强制整个工作簿进行 通过依赖树重建进行完整计算 before将工作簿保存到磁盘 So that when my end u
  • 我无法使用模式来使用像“abc_def”这样的组名称

    我对必须编译的一系列模式有疑问 这是一个例子
  • 如何外部化 maven-checkstyle-plugin 的 checkstyle 配置

    我试图让 maven checkstyle plugin 对我们的所有项目使用相同的配置文件 我尝试了几种方法 但没有一种有效 似乎唯一有效的是当我将配置文件放在我的 maven project 的根目录中 然后在 pom xml 中使用该
  • 我不确定为什么决策树和随机森林显示 100% 的准确率?

    我目前正在研究一个模型 该模型可以读取结构化数据并确定某人是否患有疾病 我认为问题在于数据没有在训练数据和测试数据之间分开 我不知道我怎样才能做到这一点 我不知道该尝试什么 import pandas as pd import numpy
  • phpUnit中createMock和getMockBuilder有什么区别?

    为了我一生的挚爱 我无法弄清楚两者之间的区别createMock type and getMockBuilder type 我正在查看原始文档 只有一行我不明白 您可以使用 getMockBuilder type 方法来自定义测试双精度生成
  • 监控磁盘读/写活动

    有没有办法使用 python 获取当前磁盘加载 我使用 psutil 来获取 CPU 和 RAM 使用情况 psutil cpu percent and psutil virtual memory used 但我不知道如何获取有关硬盘的此类
  • 交替表行颜色,但有 2 行数据

    我已经为斑马条纹设置了表格 但是如何实现使行颜色交替为 2 行而不是单行 我的数据标记如下所示 tr td task TaskNum td td task RepiarTime td td Priority Club td td SD td
  • 在 Erlang 中将列表拆分为相同大小的块

    我想分割 1 2 3 4 5 6 7 8 into 1 2 3 4 5 6 7 8 它通常适用于 lists sublist List X 2 X lt lists seq 1 length List 2 但这样确实很慢 在我的上网本上 1