问题标签 [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.
javascript - 在 JavaScript 中实现 monad
现在node.js支持ECMAScript Harmony 生成器do
,我们可以在 Haskell 中简洁地编写单子代码:
在上面的代码中,monad
有一个函数可以用来创建确定性的monad,例如:
您现在可以maybe
按如下方式使用:
上面的函数readZip
接受两个字符串,将它们转换为列表,然后压缩它们。如果有错误,则立即返回null
。它取决于以下功能:
我们对其进行测试以检查它是否按预期工作:
同样,我们可以创建任何其他确定性 monad。例如,我最喜欢的cont
monad:
现在我们可以cont
简洁地使用连续传递样式创建函数:
您可以fib
按如下方式使用该功能:
不幸的是monad
,仅适用于确定性单子。它不适用于像list
monad 这样的非确定性 monad,因为您只能从特定位置恢复生成器一次。
list
所以我的问题是:有没有其他方法可以在 JavaScript 中简洁地实现非确定性monad?
ember.js - PhpStorm 7.1 中的语法高亮错误
使用 EcmaScript6(和谐版)模块语法时,我在 PhhpStorm 中遇到语法高亮错误。
当我使用此代码时(确保它不是错误):https ://github.com/stefanpenner/ember-app-kit-todos/blob/master/app/models/todo.js
然后我在编辑器中收到以下错误:
我为设置中的 Javascript 语法高亮启用了 Ecmascript Harmony。
编辑:请参见此处使用导入调用的第二个示例:
javascript - 在我们可以在 JS 中监听它们之前发生的事件?
我在下面有一个图像事件处理代码
HTML
JavaScript
会是什么情况,在我开始收听事件之前可能会发生这些事件?
目的是理解为什么我应该使用 Promise。
javascript - Ruby 的 splat 运算符的 JavaScript 等价物是什么?
在 Ruby 中,您可以使用 splat ( *
) 运算符为函数捕获可变数量的参数,或者将数组的内容作为参数发送给函数,如下所示:
输出:
JavaScript 中 this 的等价物是什么?
javascript - SyntaxError: Unexpected Identifier (ES6 中的生成器)
在阅读了来自 MDN 的有关生成器的文档后,我想出了这个简单的实验:
在带有标志集的 node.js v0.11.9 上运行它--harmony
会产生以下错误:
我也尝试使用for ... in ...
andlet
关键字代替var
,但没有任何成功。
我不明白究竟yield*
是什么,但如果我在for
循环中使用它,我会得到:
如果我将 for 中的 yield 替换为console.log()
它的输出a
,b
和c
. 我究竟做错了什么?
编辑
这是一个简约的生成器,表明 node.js 知道如何使用生成器:
输出:
解决方案(感谢@Andrew)
javascript - 在 Javascript 中重新启动生成器
在节点(0.11.9,带有--harmony
标志)中,如何在生成器完成后重新启动它?
我试过做generator.send(true);
,但它说 send() 方法不存在。
javascript - Google Canary 浏览器是否支持 ES6 的生成器?
我需要测试/工作作为ES6草案一部分的生成器。要工作,我需要一个浏览器(在我的情况下)。由于 Google Canary 是严格面向开发人员的,那么它现在是否支持生成器?我的操作系统是 Windows 7。
ecmascript-harmony - ES6 yield : 第一次调用 next() 的参数会发生什么?
考虑这段代码:
和输出
为什么第一次调用完全it.next()
跳过参数(在上面的代码中"bar"
)?或者,换句话说,为什么后续调用中的行为会有所不同?我本来希望调用生成器函数会跳过参数,并且调用next()
实际上会初始化迭代器,使过程更加连贯,不是吗?
javascript - 在 --harmony 模式下运行节点 shell 脚本
如何运行以--harmony
模式公开 shell 脚本的全局安装的节点模块?
dictionary - Map vs Object的Harmony ES6构造函数类型?
当我创建它需要的 Mapnew
而 Object 不需要它时,怎么会这样?
最后一行产生,