首页 > 解决方案 > currying 函数而不是 javascript 中的 if 条件

问题描述

尝试使用 curry 函数编写 if 条件(没有“if”“true”和“false”)。不知道怎么做才对!任何人都可以帮助并告诉我怎么做吗?

const True = () => {};
const False = () => {};
const If = True => False => ifFunction(True)(False);

const ifFunction = If(True);
ifFunction('1')('2'); // 1

console.log(If(True)('1')('2'));  // 1
console.log(If(False)('1')('2')); // 2

它应该返回 1 还是 2 取决于哪个函数被传递给 if 条件。但是这段代码根本不起作用。

标签: javascriptfunctional-programming

解决方案


通过使用Church_Booleans,您可以使用以下函数。

const
    TRUE = a => b => a,
    FALSE = a => b => b,
    IF = p => a => b => p(a)(b);

console.log(IF(TRUE)('1')('2'));  // 1
console.log(IF(FALSE)('1')('2')); // 2


推荐阅读