lam vung lau lam
Junior Member
không biết hỏi thật hay hỏi móc.Mình đang tự học FP, dự định convert project từ OOP sang FP mà đang bế tắc với caching. Ở OOP thì bình thường sẽ viết 1 cái interface thế này
Vậy với FP phải làm như thế nào nhỉ?
thắc mắc implementation thì còn hiểu được, đây lại thắc mắc api.
FP cũng viết y vậy thôi.
Mã:
module LRUCache =
let get<'a> (key: string) (acquire: () -> 'a) =
// implement
một số điểm lưu ý
- không khai báo interface, implement luôn.
- FP không có default parameter, nên anh phải tạo 1 hàm khác kiểu như là getWithCacheTime
- cái dictionary lưu cache anh có thể tạo trong module rồi get, set... truy cập vào nó (y như OOP); hoặc anh có thể truyền vào làm tham số của get, set... rồi anh tạo những hàm get, set khác "bake-in" cái dictionary này.
- cái module này là singleton, nơi khác anh import rồi dùng, không DI gì cả.

