问题标签 [language-extension]

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 投票
1 回答
764 浏览

haskell - Haskell 中的 ViewPatterns 和多次调用

我读到这个:

http://hackage.haskell.org/trac/ghc/wiki/ViewPatterns

我喜欢这个主意,想使用扩展。但是,我想确定一件事:是否针对单个匹配对视图函数进行一次评估。

所以假设我们有:

现在假设我调用f a. 为view给定的参数调用两次还是只调用一次a

编辑

我试图找出是否是这种情况并写了以下内容:

使用 GHC 输出:

使用 GHC 输出(经过优化)

使用 GHCi 输出:

0 投票
2 回答
528 浏览

haskell - 在 cabalized 项目中指定扩展的约定

对于任何 .hs 文件,您可以指定您依赖的语言扩展名,如下所示:

cabalized 项目还可以在 .cabal 文件中为每个项目指定语言扩展:

哪些被认为是“最佳实践”?是否应该在 .cabal 文件中列出所有使用的扩展,以记录您的包与哪些编译器兼容?还是应该在每个文件的基础上记录所有扩展名,以便明确哪些文件依赖于哪些扩展名?在这两个地方广泛记录呢?还是介于两者之间的最佳实践?

0 投票
1 回答
207 浏览

haskell - 为什么 -XImplicitParams 只能从命令行工作,而不是编译指示?

为什么-XImplicitParams从命令行工作而不是 OPTIONS_GHC pragma?

我发现ghc t.hsthrows a parse error on input 'a'ift.hs包含以下代码,而ghc -XImplicitParams t.hs工作正常。同上ghci

0 投票
1 回答
6491 浏览

haskell - 用户应该使用/避免哪些 Haskell (GHC) 扩展?

我有几次让 GHC 告诉我使用扩展的经验,只是发现在使用该扩展时,我使代码变得更加复杂,而一个简单的重构可以让我坚持使用 Haskell 98(现在2010 ) 并有一个更直接的解决方案。

另一方面,有时 GADT 或 Rank2Types(很少是 RankNTypes)可以减少工作量和更简洁的代码。

哪些扩展通常会掩盖更好设计的可能性,哪些通常会改进它?如果有一些两者兼而有之,那么在决定使用该扩展程序之前,用户应该寻找什么(确定他们想要的解决方案是否正确)?

(另请参阅我是否应该使用 GHC Haskell 扩展?

0 投票
1 回答
19364 浏览

haskell - 如何从 GHCi 中启用语言扩展?

我正在尝试XRankNTypes在 GHCi 中启用。我该怎么做呢?

0 投票
1 回答
825 浏览

security - 在没有 GeneralizedNewtypeDeriving 的情况下破坏 Data.Set 完整性

下面的代码使用不安全的GeneralizedNewtypeDeriving扩展Data.Set通过插入具有不同Ord实例的不同元素来中断:

代码打印[1,3,5,7,8,6,9,6,4,2,0,9]。请注意,该列表是无序的并且有9两次。

是否可以使用其他扩展来执行此字典交换攻击,例如ConstraintKinds?如果是,是否可以Data.Set重新设计以抵御此类攻击?

0 投票
1 回答
846 浏览

c++ - 是否可以在关闭语言扩展的情况下编写 windows 和 directx 代码?

我在我的项目中关闭了扩展,但必须为任何包含 directx 或 windows 头文件的 cpp 文件打开它们。

如果我关闭这些 cpp 文件的扩展,它将无法编译。有没有办法让它工作?

使用语言扩展可以很好地编译。

我正在使用 VS2012 express、c++、directx9 和 Win7 64。

示例错误

0 投票
1 回答
575 浏览

haskell - 在本地使用 UndecidableInstances pragma 是否会对编译终止产生全局影响?

UndecidableInstances假设一个 Haskell 库设计者出于某种原因决定使用它。该库编译良好。现在假设某个程序使用该库(例如定义其类型类的一些实例),但不使用扩展。编译失败(不会终止)会发生吗?

如果这种情况可能发生,我很乐意看到一个例子。例如,由于mtl使用UndecidableInstances很多,是否可以编写一个依赖于mtl(或任何其他使用扩展的标准库)的程序,不使用UndecidableInstances自己,但由于不确定性而无法编译?

0 投票
2 回答
92 浏览

javascript - 带有缺少括号的函数调用的 JavaScript 语言扩展——它们可能吗?

是否有可能以任何方式做这样的事情:

关键部分是这条线:

0 投票
1 回答
183 浏览

haskell - MTL 库需要哪些语言扩展?

我试图通过基于现有设计实现我自己的小型库来理解 monad 转换器。

我坚持的是语言扩展。在MonadError中,唯一提到的扩展是UndecidableInstances. FunctionalDependencies但是,如果不使用and ,我就无法编译类似的代码FlexibleInstances

我认为需要 FunDeps 的示例:

还有一个灵活的实例:

代码如何MonadError避免额外的两个扩展?