爲了使代碼更具可讀性,有一些建議是,一個函數應該做簡單的事情,然後將函數組合成一個大的函數。但是,如果小函數可以接受相同的多個參數集合,如果使用多個函數,那麼參數是重複的,在這種情況下如何編寫更易讀的代碼?使用2個函數或只有一個函數,如果兩個函數具有相同的一組參數?
例如在以下2個函數中,fun1和fun2具有相同的一組參數,兩者都只能接受一個參數,或者可以接受2個參數。如果使用一個函數(將fun2的代碼複製到fun1),那麼我不會複製參數集(一個用於參數,另一個用於2個參數)。有更好的方法嗎?
(defn fun1
([x] (fun1 x nil))
([x y] (do ....
(fun2 x y)))
)
(defn fun2
([x] (fun2 x nil))
([x y] (......))
)