- 主题:这段js代码缺分号竟然编译失败
这不是废话么
foo(bar)(baz)();
foo(bar); (baz)();
哪种编译器能神奇的猜出来你居然想要后者而不是前者
【 在 Bolyai (p,v) 的大作中提到: 】
: [code=js]
: var a = /123/, b = /123/;
: console.log([a == b, a === b]); // 缺分号会报错
: ...................
--
FROM 115.188.67.*
const foo = (a, b, c, d) => a + b + c + d;
const bar = _.curry(foo);
> bar(1)(2)(3)(4)
< 10
currying 是非常基本的 fp 概念
【 在 Bolyai (p,v) 的大作中提到: 】
: 前者是啥?
--
FROM 115.188.67.*
话说,是不是如果我写
const foo = (a) => (b) => (c) => a + b + c;
的话,你就看不懂这代码是干啥的了?
【 在 Bolyai (p,v) 的大作中提到: 】
: 前者是啥?
--
FROM 115.188.67.*
curry 远比这个复杂,bar(a, b, c) 或者 bar(a, b)(c) 都可以,甚至 placeholder:
const baz = bar(_, 1, 2); // baz(3) === bar(3, 1, 2)
const foo = (a) => (b) => a + b;
foo 是一个函数,接受一个参数。返回值也是一个函数(这里是个 closure),接受一个参数,返回一个加法结果
【 在 Bolyai (p,v) 的大作中提到: 】
: 真不懂,才学这玩意~
: 不过,既然你写了,大体还是可以猜测出来,就是上面那个 curry 化的方法吧
: const foo = (a, b, c) => a + b + c;
: ...................
--
FROM 115.188.67.*
react 多主流啊,还非得说 fp 不主流
看到柯里我还愣了一下,为啥不翻译成咖喱?
另外,let 是 es6 语法
【 在 hgoldfish (老鱼) 的大作中提到: 】
: 这个就是 fp 的通用语法。你看不懂是因为你不熟悉 js,转成 es5 就是
: let x = function() { return function() { return z; }; };
: 再看不懂你就再仔细学习一下 js 说明你还没到位。
: ...................
--
修改:eGust FROM 115.188.67.*
FROM 115.188.67.*
不写值相当于
let i = undefined;
没毛病啊,谁让你非不写值然后还要瞧着别扭的
【 在 hgoldfish (老鱼) 的大作中提到: 】
: 说到 let,js 的这种语法也是垃圾。
: let i;
: 动词放前面这样的写法在英语里面会觉得很奇怪。
: ...................
--
FROM 115.188.67.*