gpt4 book ai didi

naming-conventions - Ocaml 中函数的命名约定

转载 作者:行者123 更新时间:2023-12-02 07:44:09 24 4
gpt4 key购买 nike

由于Ocaml不接受函数重载,有时我不得不为不同的类型定义一些相似的函数。例如,

let reduce_a (a: A): A = ...
let reduce_b (b: B): B = ...

let a_compare (a0: A) (a1: A): bool = ...
let b_compare (b0: B) (b1: B): bool = ...

我知道最好的方法是有两个模块 AB,并制作两个函数 A.reduce B.减少。但是在创建模块之前,我只想知道命名函数的最佳约定。

人们通常更喜欢命名reduce_a(类型前的动词)还是a_reduce(动词前的类型)?我们可以在标准库中找到一些示例吗?

最佳答案

另一种选择是将它们放在自己的模块中,例如

module A = struct

type t = ...
let reduce x = ...
let compare x y = ...

end

module B = struct ... (* you get the point *) end

这样你就不用担心函数是compare_a还是a_compare,因为它必须是A.compare。你必须克制自己(除了本地)打开模块。当然,此解决方案的工作能力取决于您处理的类型。

关于naming-conventions - Ocaml 中函数的命名约定,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8286735/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com