ITADN
erlware/erlware_commons
erlware/erlware_commons · 文件 下载 ZIP
文件最后提交记录最后更新时间
README.md
以下内容由 AI 翻译,如有问题请点此提交 issue 反馈

Erlware Commons

当前状态

Hex.pm Tests

Introduction

Erlware commons 可以被描述为对随 Erlang 分发的 stdlib 应用程序的扩展。这些是我们在 Erlware 发现对生产应用程序有用 但未包含在发行版中的内容。我们希望随着库中的内容 被证明有用,它们能够进入主要的 Erlang 发行版。然而,无论是否如此,我们希望这个 应用程序能普遍有用。

Goals for the project

  • 通用有用的代码
  • 高质量
  • 文档完善
  • 测试完善

Licenses

本项目包含使用 Apache License, Version 2.0 许可的元素, 以及使用 The MIT License 许可的元素。

您会在特定文件的头部找到许可相关信息, 在适当的地方。

在没有此类信息的情况下,请参阅 COPYING

Currently Available Modules/Systems

ec_date

本模块将 erlang 日期格式 {{Year, Month, Day}, {Hour, Minute, Second}} 格式化为可打印的字符串,使用与 http://uk.php.net/date 几乎 等效的格式化规则,美式与欧式日期的歧义消除方式与 http://uk.php.net/manual/en/function.strtotime.php 相同。也就是说,m/d/y 或 d-m-y 格式的日期通过查看各组件之间的分隔符来消除歧义:如果分隔符是斜杠 (/),则假定为美式 m/d/y;而如果分隔符是 连字符 (-) 或点 (.),则假定为欧式 d-m-y 格式。为 避免潜在的歧义,最好使用 ISO 8601 (YYYY-MM-DD) 日期。

erlang 没有时区的概念,因此以下格式未 实现:B e I O P T Z 格式 c 和 r 也会略有不同

ec_file

一组常用的辅助函数,用于处理未 包含在 stdlib 中的文件。

ec_plists

plists 是模块 lists 的直接替代品,使大多数 列表操作并行化。它可以并行处理每个元素, 适用于 IO 密集型操作;并行处理子列表, 以利用多核机器处理 CPU 密集型操作;以及跨 erlang 节点,以在集群内部实现并行化。它处理错误和节点 故障。它可以进行配置、调优和微调,以在最小化开销的同时获得最佳 性能。

几乎所有函数都与列表中的等效函数相同,返回完全相同的结果,并且都具有两种形式:一种具有相同语法,并行处理每个元素;另一种接受一个可选的 "malt",即如何并行化操作的规范。

fold 是唯一的例外,并行 fold 与线性 fold 不同。该模块还包含一个简单的 mapreduce 实现,以及函数 runmany。所有其他函数都通过 runmany 实现,runmany 是并行列表操作的泛化。

ec_semver

一个完整的 semver 标准解析器。包含一套完整的符合规范的比较函数。

ec_lists

一组额外的列表操作函数,旨在补充 stdlib 中的 lists 模块。

ec_talk

一组简单的实用函数,用于促进与用户的命令行通信。

Signatures

其他语言内置了对 Interfacesignature 功能的支持。Java 有 Interfaces,SML 有 Signatures。然而,Erlang 目前并不直接支持这种模型, 至少不是直接支持。有几种方法可以近似实现它。 我们定义了一种称为 signatures 的机制,以及几个模块 作为示例,并提供一组良好的 dictionary signatures。有关 signatures 的更多信息可以在 signature 找到。

ec_dictionary

一种支持键值关联的签名。map 不能 包含重复的键;每个键最多映射到一个值。

ec_dict

这提供了基于 erlang 的 dicts 实现的 ec_dictionary 签名。 ec_dictionary 的函数文档在此同样适用。

ec_gb_trees

这提供了基于 erlang 的 gb_trees 实现的 ec_dictionary 签名。 ec_dictionary 的函数文档在此同样适用。

ec_orddict

这提供了基于 erlang 的 orddict 实现的 ec_dictionary 签名。 ec_dictionary 的函数文档在此同样适用。

ec_rbdict

这提供了基于 Robert Virding 的 rbdict 模块实现的 ec_dictionary 签名。 ec_dictionary 的函数文档在此同样适用。