问题标签 [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 - 使用重载字符串
OverloadedStrings
扩展确实非常有用,但是它有一些缺点。考虑以下函数定义:
在这种情况下,如果我想传递一个文字值,我必须在OverloadedStrings
启用时显式添加类型签名:
这种必要性的原因很明显,我想OverloadedStrings
旨在简化将文字值传递给具有严格类型签名的函数,从而使开发人员无需在需要值pack
的任何地方编写 s 。Text
问题是有什么方法可以将所有没有类型签名的字符串文字默认为Text
, 或String
? 或者我应该将我的代码拆分为通用函数(具有ToJSString
类型约束)和任意函数,它们的参数具有严格的类型签名?
python - 如何在 Python 之上解析特定领域的语言?IPython 的架构是什么?
我想构建一种特定于领域的语言作为 Python 的超集。神秘的命令,如
旨在最小化类型的应被解析为纯 Python
在被执行之前。可能,命令行界面应该是 IPython。
什么是合适的架构:我应该在 IPython 命令行 shell 或其内核守护进程中实现从隐秘到普通的 Python 转换吗?是否有有用的库/教程/示例?
或更笼统地说:是否有示例如何向 Python 添加复杂的语法糖?
c++ - 'this' 参数上的每个地址空间限定符的方法重载
在使用 clang++ 的 C++ 中,是否可以根据隐式“this”参数上的地址空间限定符重载方法?如果是这样,语法是什么?
该来源建议我可以将地址空间限定符放在参数列表之后但在花括号之前(类似于在 'this' 上使用 const 限定符)。我尝试了以下方法,但失败了;clang 认为我正在尝试设置方法的地址空间,而不是“this”:
我发现的最接近的是,clang 允许我根据其显式形式参数的地址空间(而不是 'this')重载方法。例如,下面的代码将打印“1\n2\n”。
haskell - Haskell 编译指示:OPTIONS_GHC 与 LANGUAGE
我发现自己在我的 cabal 项目中经常使用这种 pragma 来强制 GHC 使用特定选项进行构建:
但是当我看到其他人使用扩展时,他们总是这样声明:
但是,当我在使用后一种方法的 GHCi 中加载文件时,GHC 总是抱怨我正在使用 anunrecognised pragma
并立即失败。
为什么GHC不接受LANGUAGE
pragma,两者哪个更好?
注意:我的 GHC 版本是最新的:7.8.3,但发生这种情况时是 7.6.*。
c++ - Is there a proposal to extend the C++ language so as to obviate pimpl?
Sometimes, you want to provide a class declaration, which is not merely an opaque forward declaration but has the public functionality exposed - yet you don't want to commit to your private, or implementation-specific, fields and methods. One solution for this is the pimpl idiom - using a pointer to an inner class, housing the implementation of the class exposed publicly.
I don't really like using pimpl and wish the language would allow you to have really-private members - so that code using the class does not 'see' their declaration (and thus probably doesn't need to be recompiled when the implementation details change). Also, recently, I've noticed C++ has been evolving much faster - a 3-year tick-tock pattern in standard updates. So... is there a proposal to add such functionality to C++? Do some compilers currently support it perhaps?
c++ - C++1z 协程是一种语言特性?
为什么将协同程序(截至目前在 C++1z 的最新草案中)实现为核心语言功能(花哨的关键字和所有)而不是库扩展?
它们已经存在一些实现(Boost.Coroutine 等),根据我所读到的,其中一些可以独立于平台。为什么委员会决定将其融入核心语言本身?
我并不是说他们不应该,但 Bjarne Stroustrup 本人在一些谈话中(不知道是哪一个)提到应该尽可能在库中实现新功能,而不是触及核心语言。
那么这样做有充分的理由吗?有什么好处?
c - 当 C 中没有左侧时,&& 运算符会做什么?
我在 C 中看到一个程序,其代码如下:
我对它的作用感到困惑,&&
因为它的左边没有任何东西。默认情况下它是否评估为空?或者这是一个特例?
编辑:添加了更多信息,以使问题/代码对我的问题更加清晰。谢谢大家的帮助。这是 gcc 特定扩展的一个案例。
javascript - 从 QML 导入的 JS 资源究竟支持什么语法?
我曾经认为,当你从 QML 导入一个 JS 资源时,这个 JS 文件只能包含标准的 JS 代码。然后我遇到了2个例外:
.import
声明_- 关键字(在
property
JS 中),似乎只在代码隐藏文件中使用,并且显然向导入 JS 的 QML 组件添加了一个属性
与标准 JS 相比,从 QML 导入时,JS 中还有哪些其他“扩展”?
我想要这两个,以及对 JS 语言的任何其他扩展,完整描述。property
例如,声明一个全局 JS 变量有和没有关键字有什么区别?
haskell - 你如何在 Haskell 中使用 TypeApplications?
在-XTypeApplications
GHC 8.0 中,您可以使用@
前面的函数参数显式指定类型。它具体指定了哪些类型,尤其是在@
引入了几种类型时?
haskell - 使用多参数类型派生扩展
我有一个 Ast 类型的构造函数,由标识符类型参数化。使用 DeriveFunctor、DeriveFoldable 和 DeriveTraversable 扩展,可以自动创建适当的实例。
现在我发现引入更多类型参数很有用,但不幸的是上述方法无法扩展。理想情况下,我希望能够将我的 Ast 类型包装在选择类型中,这将允许我映射到适当的类型参数。有什么方法可以实现类似的效果而不必自己定义实例?
编辑:
这是原始 Ast 的一个小示例: