由於Ocaml不接受函數重載,有時我必須爲不同類型定義一些類似的函數。例如,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 = ...
我知道,最好的辦法是有兩個模塊A
和B
,使2個功能A.reduce
和B.reduce
。但在創建模塊之前,我只想知道命名函數的最佳約定。
難道人們通常更喜歡將reduce_a
(動詞前的動詞)還是a_reduce
(動詞前的類型)命名?我們可以在標準庫中找到一些例子嗎?