问题标签 [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.
haskell - Haskell 中的 ViewPatterns 和多次调用
我读到这个:
http://hackage.haskell.org/trac/ghc/wiki/ViewPatterns
我喜欢这个主意,想使用扩展。但是,我想确定一件事:是否针对单个匹配对视图函数进行一次评估。
所以假设我们有:
现在假设我调用f a
. 为view
给定的参数调用两次还是只调用一次a
?
编辑:
我试图找出是否是这种情况并写了以下内容:
使用 GHC 输出:
使用 GHC 输出(经过优化)
使用 GHCi 输出:
haskell - 在 cabalized 项目中指定扩展的约定
对于任何 .hs 文件,您可以指定您依赖的语言扩展名,如下所示:
cabalized 项目还可以在 .cabal 文件中为每个项目指定语言扩展:
哪些被认为是“最佳实践”?是否应该在 .cabal 文件中列出所有使用的扩展,以记录您的包与哪些编译器兼容?还是应该在每个文件的基础上记录所有扩展名,以便明确哪些文件依赖于哪些扩展名?在这两个地方广泛记录呢?还是介于两者之间的最佳实践?
haskell - 为什么 -XImplicitParams 只能从命令行工作,而不是编译指示?
为什么-XImplicitParams
从命令行工作而不是 OPTIONS_GHC pragma?
我发现ghc t.hs
throws a parse error on input 'a'
ift.hs
包含以下代码,而ghc -XImplicitParams t.hs
工作正常。同上ghci
。
haskell - 用户应该使用/避免哪些 Haskell (GHC) 扩展?
我有几次让 GHC 告诉我使用扩展的经验,只是发现在使用该扩展时,我使代码变得更加复杂,而一个简单的重构可以让我坚持使用 Haskell 98(现在2010 ) 并有一个更直接的解决方案。
另一方面,有时 GADT 或 Rank2Types(很少是 RankNTypes)可以减少工作量和更简洁的代码。
哪些扩展通常会掩盖更好设计的可能性,哪些通常会改进它?如果有一些两者兼而有之,那么在决定使用该扩展程序之前,用户应该寻找什么(确定他们想要的解决方案是否正确)?
(另请参阅我是否应该使用 GHC Haskell 扩展?)
haskell - 如何从 GHCi 中启用语言扩展?
我正在尝试XRankNTypes
在 GHCi 中启用。我该怎么做呢?
security - 在没有 GeneralizedNewtypeDeriving 的情况下破坏 Data.Set 完整性
下面的代码使用不安全的GeneralizedNewtypeDeriving
扩展Data.Set
通过插入具有不同Ord
实例的不同元素来中断:
代码打印[1,3,5,7,8,6,9,6,4,2,0,9]
。请注意,该列表是无序的并且有9
两次。
是否可以使用其他扩展来执行此字典交换攻击,例如ConstraintKinds
?如果是,是否可以Data.Set
重新设计以抵御此类攻击?
c++ - 是否可以在关闭语言扩展的情况下编写 windows 和 directx 代码?
我在我的项目中关闭了扩展,但必须为任何包含 directx 或 windows 头文件的 cpp 文件打开它们。
如果我关闭这些 cpp 文件的扩展,它将无法编译。有没有办法让它工作?
使用语言扩展可以很好地编译。
我正在使用 VS2012 express、c++、directx9 和 Win7 64。
示例错误
haskell - 在本地使用 UndecidableInstances pragma 是否会对编译终止产生全局影响?
UndecidableInstances
假设一个 Haskell 库设计者出于某种原因决定使用它。该库编译良好。现在假设某个程序使用该库(例如定义其类型类的一些实例),但不使用扩展。编译失败(不会终止)会发生吗?
如果这种情况可能发生,我很乐意看到一个例子。例如,由于mtl使用UndecidableInstances
很多,是否可以编写一个依赖于mtl(或任何其他使用扩展的标准库)的程序,不使用UndecidableInstances
自己,但由于不确定性而无法编译?
javascript - 带有缺少括号的函数调用的 JavaScript 语言扩展——它们可能吗?
是否有可能以任何方式做这样的事情:
关键部分是这条线:
haskell - MTL 库需要哪些语言扩展?
我试图通过基于现有设计实现我自己的小型库来理解 monad 转换器。
我坚持的是语言扩展。在MonadError中,唯一提到的扩展是UndecidableInstances
. FunctionalDependencies
但是,如果不使用and ,我就无法编译类似的代码FlexibleInstances
。
我认为需要 FunDeps 的示例:
还有一个灵活的实例:
代码如何MonadError
避免额外的两个扩展?