Logic
either()
计算逻辑或运算的结果。
- Type
- Details
传入两个布尔类型的参数(记为
- Example
either(true, false); //true
either(false)(false); //falseeither(true, false); //true
either(false)(false); //falseboth()
计算逻辑与运算的结果。
- Type
- Details
传入两个布尔类型的参数(记为
- Example
either(true, false); //false
either(true)(true); //trueeither(true, false); //false
either(true)(true); //truenot()
计算非运算的结果。
- Type
- Details
传入一个布尔类型的参数(记为
- Example
not(false); //truenot(false); //truelt()
计算 < 运算的结果。
- Type
- Details
传入两个可比较类型的参数(记为
- Example
lt(2, 3); //true
lt(3)(3); //falselt(2, 3); //true
lt(3)(3); //falselte()
计算 <= 运算的结果。
- Type
- Details
传入两个可比较类型的参数(记为
- Example
lte(2, 3); //true
lte(3)(3); //truelte(2, 3); //true
lte(3)(3); //truegt()
计算 > 运算的结果。
- Type
- Details
传入两个可比较类型的参数(记为
- Example
gt(2, 3); //false
gt(3)(3); //falsegt(2, 3); //false
gt(3)(3); //falsegte()
计算 >= 运算的结果。
- Type
- Details
传入两个可比较类型的参数(记为
- Example
gte(2, 3); //false
gte(3)(3); //truegte(2, 3); //false
gte(3)(3); //trueequal()
计算 == 运算的结果。
- Type
- Details
传入两个可比较类型的参数(记为
- Example
equal(1, 1); //true
equal(5)(1); //falseequal(1, 1); //true
equal(5)(1); //falseequalStrict()
计算 === 运算的结果。
- Type
- Details
传入两个可比较类型的参数(记为
- Example
equalStrict(1, 1); //true
equalStrict(5)(1); //falseequalStrict(1, 1); //true
equalStrict(5)(1); //falsedeepEqual()
比较两个值(可以是数组、对象、或者一般的值)是否相等。
可以采用占位符 _ 来统配匹配。
需要注意的是,如果传入的是一般值,比较规则将与 equalStrict 同。
- Type
- Details
传入两个值。
- Example
deepEqual([1, 2, 3], [4, 5, 6]); //false
deepEqual({ a: 1 }, { a: 1 }); //true
deepEqual({ a: _, b: [_, 1, 2, 3] }, { a: 1, b: [1, 1, 2, 3] }); //truedeepEqual([1, 2, 3], [4, 5, 6]); //false
deepEqual({ a: 1 }, { a: 1 }); //true
deepEqual({ a: _, b: [_, 1, 2, 3] }, { a: 1, b: [1, 1, 2, 3] }); //truewhen()
构造一个参数符合条件后执行一定操作的函数。
- Type
- Details
初始传入两个函数类型的参数(记为
该函数的行为是:将参数传给 true,则将执行 false,则将原样返回传入的参数。
特别的,传入
显然,
- Example
const foo = when(
(v) => v == ' is you!',
(v) => 'homo' + v
);
foo(' is you!'); //"homo is you!";const foo = when(
(v) => v == ' is you!',
(v) => 'homo' + v
);
foo(' is you!'); //"homo is you!";unless()
构造一个参数符合条件后执行一定操作的函数。
- Type
- Details
初始传入两个函数类型的参数(记为
该函数的行为是:将参数传给 false,则将执行 true,则将原样返回传入的参数。
特别的,传入
显然,
- Example
const foo = unless(
(v) => !(v == ' is you!'),
(v) => 'homo' + v
);
foo(' is you!'); //"homo is you!";const foo = unless(
(v) => !(v == ' is you!'),
(v) => 'homo' + v
);
foo(' is you!'); //"homo is you!";ifElse()
构造一个参数符合条件后执行一定操作的函数。
- Type
- Details
初始传入三个函数类型的参数(记为
该函数的行为是:将参数传给 true,则将执行 false,则将执行
特别的,传入
显然,
- Example
const foo = ifElse(
(v) => v == ' is you!',
(v) => 'homo' + v,
(v) => 'homo' + v
);
foo(' not you!'); //"homo not you!";const foo = ifElse(
(v) => v == ' is you!',
(v) => 'homo' + v,
(v) => 'homo' + v
);
foo(' not you!'); //"homo not you!";id()
返回与传入的参数。
- Type
- Details
传入一个参数,并直接返回它。
- Example
id(114514); //114514id(114514); //114514always()
构造一个返回常量的函数。
- Type
- Details
传入一个参数作为常量,返回值为一个函数值为该常量的函数。
- Example
always(114514)(); //114514always(114514)(); //114514eqType()
判断两个值的类型是否相等。
- Type
- Details
传入两个值,返回结果为两值的类型是否相等。
- Example
eqType(1, 1); //true
eqType(1, '1'); //trueeqType(1, 1); //true
eqType(1, '1'); //trueeqData()
比较两个抽象数据结构是否相等。
- Type
- Details
然后传入两个由 Data 构造的对象,该函数可以判断这两个对象是否来自该抽象数据结构并且相等。
第一个参数的对应值可以传入 _ 以表示对该参数任意匹配。
- Example
const foo = Data('A a b c');
eqData(foo.A(1, 1, 2), foo.A(1, 1, 2)); //true
eqData(foo.A(1, 1, { r: _ }), foo.A(1, 1, { r: 1 })); //trueconst foo = Data('A a b c');
eqData(foo.A(1, 1, 2), foo.A(1, 1, 2)); //true
eqData(foo.A(1, 1, { r: _ }), foo.A(1, 1, { r: 1 })); //true