Idempotent function là gì?

Phrase None
idempotence

Trong lập trình, idempotent function là bất kỳ hàm nào (function) thỏa mản một trong hai trường hợp sau: (1) hàm có side effect và được thực thi nhiều lần mà không làm thay đổi kết quả cuối cùng SAU lần gọi đầu tiên của nó, (2) là pure function.

Code bên dưới minh họa idempotent function trong Javascript


// Idempotent function
var x = 0;
function f(n) {
  x = n;
}

f(5); // x = 5
f(5); // x = 5
f(5); // x = 5

Hàm f () có side effect (vì thay đổi giá trị của biến toàn cục x) và là idempotent function dưới các chuỗi lời gọi hàm vì khi được gọi n lần với cùng một danh sách các đối số thì lần gọi thứ n không có side effect và trả về cùng giá trị với lần gọi đầu tiên, giả sử không có hàm nào khác được gọi. Xem thêm side effect để hiểu rõ.

Ví dụ điển hình về hàm idempotent function, là một hàm truy vấn cơ sở dữ liệu (database) để biết tên và địa chỉ của khách hàng.

Learning English Everyday