我正在创建自己的小函数库,我正在尝试遵循Phobos的命名惯例,但我真的很困惑.我怎么知道哪些东西适合?
如果有像foldRightPhobos 这样的功能(基本上reduce是反方向),我会找到哪个模块?
我可以想到几个:
std.algorithm:因为它表达了一种算法std.array:因为我可能会在数组上使用它std.container:因为它用在容器上,而不是单个对象上std.functional:因为它主要用于函数式编程std.range:因为它也在范围内运行但我不知道哪一个会是一个不错的选择 - 我可以为其中至少3个做出令人信服的论证.
惯例是什么?
rat*_*eak 17
std.algorithm:是的,你可以实现它像减少!乐趣(复古(r))
此模块指定在序列上运行的算法
std.array:不,因为它也可以在其他范围上运行
这些是仅在内置数组中运行的辅助函数
std.container:不,因为它没有定义数据结构(如树集)
这定义了未构建到语言中的数据结构(现在是链接列表,二进制树和内存管理方面的确定性数组)
std.functional:不,因为它不在函数上运行,而是在范围上运行
这个拿一个函数并返回一个不同的函数
std.range:不,因为它没有定义范围或提供不同的迭代方式
缺乏清晰的结构是我对phobos库TBH的抱怨之一,但真正阅读文档的第一段应该告诉你相当多的地方放置功能