Currying là gì?

{{FormatNumbertoThousand(model.total_like)}} lượt thích
385 lượt xem
Javascript middle

Currying là khi bạn chia nhỏ một hàm có nhiều đối số thành một chuỗi các hàm có một phần đối số. Đây là một ví dụ trong JavaScript:

function add (a, b) {
   return a + b;
} 
add(3, 4); // returns 7

Đây là một hàm nhận hai đối số, ab và trả về tổng của chúng. Bây giờ chúng ta sẽ “curry” hàm này:

function add (a) {
   return function (b) {
      return a + b;
   }
}

Trong đại số học, việc xử lý các hàm có nhiều đối số (hoặc tương đương với một đối số là N-tuple) hơi không phù hợp.

Vì vậy, làm thế nào để bạn đối phó với một cái gì đó bạn muốn diễn đạt một cách tự nhiên, chẳng hạn như, f (x, y)?

Vâng, bạn coi điều đó tương đương với f (x) (y) - f (x), gọi nó là g, là một hàm, và bạn áp dụng hàm đó cho y.

Nói cách khác, bạn chỉ có các hàm nhận một đối số - nhưng một số hàm trong số đó trả về các hàm khác (CŨNG nhận một đối số).

{{login.error}}