CyrefJS
CCyrefJS
EN
بازگشت به مستندات
تابع/از نسخه 1.38.0

curry

یک تابع را به یک تابع curried تبدیل می‌کند که می‌تواند آرگومان‌های خود را در چند فراخوانی دریافت کند.

curry(fn):(...args: Partial<TArgs>) => unknown

پارامترها

fn(...args: TArgs) => TResultالزامی

تابعی که باید curry شود. تعداد پارامترهای تعریف‌شده آن برای تعیین زمان کامل شدن آرگومان‌ها استفاده می‌شود.

مقدار بازگشتی

(...args: Partial<TArgs>) => unknown

یک تابع curried که آرگومان‌ها را در چند فراخوانی جمع می‌کند و زمانی که تعداد کافی آرگومان دریافت شد، تابع اصلی را اجرا می‌کند.

مثال‌ها

01

استفاده پایه

آرگومان‌ها را در چند فراخوانی مختلف به تابع بدهید.

TypeScript
import { curry } from "@cyref/js";

const add = (a: number, b: number) => a + b;

const curriedAdd = curry(add);

const result = curriedAdd(5)(10);

console.log(result);
// 15
02

چند آرگومان به صورت همزمان

آرگومان‌ها را می‌توان در یک فراخوانی نیز به‌صورت همزمان ارسال کرد.

TypeScript
import { curry } from "@cyref/js";

const multiply = (a: number, b: number) => a * b;

const curriedMultiply = curry(multiply);

const result = curriedMultiply(4, 5);

console.log(result);
// 20
03

سه آرگومان

تابعی با سه پارامتر می‌تواند آرگومان‌های خود را در چند فراخوانی دریافت کند.

TypeScript
import { curry } from "@cyref/js";

const sum = (a: number, b: number, c: number) => a + b + c;

const curriedSum = curry(sum);

const result = curriedSum(1)(2)(3);

console.log(result);
// 6
04

گروه‌های ترکیبی آرگومان

آرگومان‌ها را می‌توان در هر فراخوانی با تعداد متفاوتی ارسال کرد.

TypeScript
import { curry } from "@cyref/js";

const calculate = (
  a: number,
  b: number,
  c: number,
) => a + b * c;

const curriedCalculate = curry(calculate);

const result = curriedCalculate(2, 3)(4);

console.log(result);
// 14
05

تابع قابل استفاده مجدد با آرگومان‌های جزئی

می‌توان تابع برگشتی را ذخیره کرد و بعداً با آرگومان‌های باقی‌مانده آن را کامل کرد.

TypeScript
import { curry } from "@cyref/js";

const multiply = (a: number, b: number) => a * b;

const curriedMultiply = curry(multiply);

const multiplyByTen = curriedMultiply(10);

const result = multiplyByTen(5);

console.log(result);
// 50
06

جمع‌آوری آرگومان‌ها

تابع آرگومان‌ها را جمع‌آوری می‌کند تا تعداد آن‌ها به تعداد پارامترهای تابع اصلی برسد.

TypeScript
import { curry } from "@cyref/js";

const formatName = (
  firstName: string,
  lastName: string,
  title: string,
) => `${title} ${firstName} ${lastName}`;

const curriedFormatName = curry(formatName);

const withName = curriedFormatName("John", "Doe");

const result = withName("Dr.");

console.log(result);
// "Dr. John Doe"
ساخته شده با@cyref/js·مستندات رسمی