问题标签 [ecmascript-harmony]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
5 回答
3035 浏览

javascript - 在 JavaScript 中实现 monad

现在node.js支持ECMAScript Harmony 生成器do,我们可以在 Haskell 中简洁地编写单子代码:

在上面的代码中,monad有一个函数可以用来创建确定性的monad,例如:

您现在可以maybe按如下方式使用:

上面的函数readZip接受两个字符串,将它们转换为列表,然后压缩它们。如果有错误,则立即返回null。它取决于以下功能:

我们对其进行测试以检查它是否按预期工作:

同样,我们可以创建任何其他确定性 monad。例如,我最喜欢的contmonad:

现在我们可以cont简洁地使用连续传递样式创建函数:

您可以fib按如下方式使用该功能:

不幸的是monad,仅适用于确定性单子。它不适用于像listmonad 这样的非确定性 monad,因为您只能从特定位置恢复生成器一次。

list所以我的问题是:有没有其他方法可以在 JavaScript 中简洁地实现非确定性monad?

0 投票
1 回答
1555 浏览

ember.js - PhpStorm 7.1 中的语法高亮错误

使用 EcmaScript6(和谐版)模块语法时,我在 PhhpStorm 中遇到语法高亮错误。

当我使用此代码时(确保它不是错误):https ://github.com/stefanpenner/ember-app-kit-todos/blob/master/app/models/todo.js

然后我在编辑器中收到以下错误:

在此处输入图像描述

我为设置中的 Javascript 语法高亮启用了 Ecmascript Harmony。

编辑:请参见此处使用导入调用的第二个示例:

第二个例子

0 投票
1 回答
150 浏览

javascript - 在我们可以在 JS 中监听它们之前发生的事件?

我在下面有一个图像事件处理代码

HTML

JavaScript

会是什么情况,在我开始收听事件之前可能会发生这些事件?

目的是理解为什么我应该使用 Promise。

0 投票
2 回答
6313 浏览

javascript - Ruby 的 splat 运算符的 JavaScript 等价物是什么?

在 Ruby 中,您可以使用 splat ( *) 运算符为函数捕获可变数量的参数,或者将数组的内容作为参数发送给函数,如下所示:

输出:

JavaScript 中 this 的等价物是什么?

0 投票
2 回答
18406 浏览

javascript - SyntaxError: Unexpected Identifier (ES6 中的生成器)

在阅读了来自 MDN 的有关生成器的文档后,我想出了这个简单的实验:

在带有标志集的 node.js v0.11.9 上运行它--harmony会产生以下错误:

我也尝试使用for ... in ...andlet关键字代替var,但没有任何成功。

我不明白究竟yield*是什么,但如果我在for循环中使用它,我会得到:

如果我将 for 中的 yield 替换为console.log()它的输出a,bc. 我究竟做错了什么?


编辑

这是一个简约的生成器,表明 node.js 知道如何使用生成器:

输出:


解决方案(感谢@Andrew)

0 投票
2 回答
1822 浏览

javascript - 在 Javascript 中重新启动生成器

在节点(0.11.9,带有--harmony标志)中,如何在生成器完成后重新启动它?

我试过做generator.send(true);,但它说 send() 方法不存在。

0 投票
1 回答
1817 浏览

javascript - Google Canary 浏览器是否支持 ES6 的生成器?

我需要测试/工作作为ES6草案一部分的生成器。要工作,我需要一个浏览器(在我的情况下)。由于 Google Canary 是严格面向开发人员的,那么它现在是否支持生成器?我的操作系统是 Windows 7。

0 投票
1 回答
635 浏览

ecmascript-harmony - ES6 yield : 第一次调用 next() 的参数会发生什么?

考虑这段代码:

和输出

为什么第一次调用完全it.next()跳过参数(在上面的代码中"bar")?或者,换句话说,为什么后续调用中的行为会有所不同?我本来希望调用生成器函数会跳过参数,并且调用next()实际上会初始化迭代器,使过程更加连贯,不是吗?

0 投票
6 回答
3443 浏览

javascript - 在 --harmony 模式下运行节点 shell 脚本

如何运行以--harmony模式公开 shell 脚本的全局安装的节点模块?

0 投票
1 回答
549 浏览

dictionary - Map vs Object的Harmony ES6构造函数类型?

当我创建它需要的 Mapnew而 Object 不需要它时,怎么会这样?

最后一行产生,