105得票5回答
Java中的正则表达式,\\s与\\s+的区别

以下两个表达式之间有什么区别?x = x.replaceAll("\\s", ""); x = x.replaceAll("\\s+", "");

70得票3回答
存在类型的理论基础是什么?

Haskell Wiki讲解了如何使用存在类型的相关知识,但我还不太理解它们背后的理论。 考虑下面这个存在类型的例子:data S = forall a. Show a => S a -- (1) 定义一个类型包装器,用于可以转换为String的内容。Wiki提到我们想要定义的...

34得票4回答
Haskell类型系统中的"exists"是什么意思?

我很难理解Haskell类型系统中的exists关键字。据我所知,Haskell默认情况下没有这样的关键字,但是: 有一些扩展可以添加它们,在声明中像这样:data Accum a = exists s. MkAccum s (a -> s -> s) (s -> a) ...

28得票1回答
作用域类型变量需要显式的forall。为什么?

如果您想使用GHC的词法作用域类型变量,则还必须使用显式全称量化。也就是说,您需要在函数的类型签名中添加forall声明:{-# LANGUAGE ExplicitForAll, ScopedTypeVariables #-} f :: forall a . [a] -> [a] ...

19得票2回答
模拟占有量词

是否可以使用原子组(或其他方式)来模拟占有量词(.NET不支持)? 注意。 我发现(x+x+)++y可以替换为(?>(x+x+)+)y,但这只是一个例子,我不知道是否总是{something}@+等于(?>{something}@)(其中@是量词)。

13得票2回答
理解量词

我正在学习 Java教程中的量词。 其中提到了贪婪、勉强和占有量词之间的差异。 我无法确切地理解它们之间的区别。 如下所示的解释: Enter your regex: .*foo // greedy quantifier Enter input string to search: ...

12得票3回答
Python中替代占有量词的方法

我正在尝试匹配所有出现的字符串Article,后面跟着一个数字(单个或多个数字),这些数字后面不是紧接着一个左括号。在Sublime Text中,我正在使用以下正则表达式:Article\s[0-9]++(?!\() 搜索以下字符串:Article 29 Article 30(1) 这与我预期...

12得票1回答
闭包和全称量化

我一直在尝试在Scala中实现教会编码数据类型。似乎需要使用rank-n类型,因为你需要一个一等的const函数,其类型为forAll a. a -> (forAll b. b -> b)。 然而,我已经成功地这样编码了对: import scalaz._ trait Com...

11得票2回答
JavaScript:正则表达式中的量词无效

这个正则表达式是动态构建的,但我已经在 Firebug 中输出了它:(.{1,38})(+|$\n?) 错误信息为invalid quantifier +|$\n?) 我不确定从哪里开始。 实际的代码是:var re = top.RegExp; var regex = new re("(.{...

11得票1回答
将所有正的forall量词提到外面是有效的吗?

这个问题在 #haskell 讨论中被提出。 如果存在一个深嵌套的 forall,且它的出现是正向的,将其提升到顶部是否总是正确的? 例如: ((forall a. P(a)) -> S) -> T (其中P、S、T被理解为元变量)转换为 forall a. (P(a)...