Pure Function

Principal

  • DRY(don't repeat yourself,不重複程式)
  • YAGNI(ya ain't gonna need it,你不會需要它)
  • 高內聚低耦合(loose coupling high cohesion)
  • 單一責任原則 (single responsibility)

Pure Function

將相同的輸入丟入,永遠都會回傳相同的輸出,並且不對任何該函數以外的任何作用域產生影響。

對開發有什麼益處

  • 有利重構(Refactor)
  • 方便測試
  • 平行化
  • 利於建快取(Cache)
  • 易與其他函數組合(Compose)
    結合律

Cacheable

追求「Pure」的理由

  • 可移植性(Portable)
    本身即文件(Self-Documenting)

  • 可測試性(Testable)

  • 並行程式碼

  • 可快取性(Cacheable)

  • 合理性(Reasonable)

Curry (柯里化)

你可以只透過部分的參數呼叫一個 function,它會回傳一個 function 去處理剩下的參數。

Pure Function

By chiao

Pure Function

  • 235