83得票1回答
"现代"正则表达式的识别能力

现代正则表达式实际上识别哪一类语言? 当存在一个不受限制长度的捕获组并带有反向引用(例如(.*)_\1)时,正则表达式将匹配非正则语言。但这本身还不足以匹配像S ::= '(' S ')' | ε这样的内容,它是匹配括号对的上下文无关语言。 递归正则表达式(在Perl和PCRE中,我保证这...

13得票12回答
为什么在大括号后面不需要分号?

我知道在语句结束处需要加分号(我指的是Java、C++和类似的语言),但是在花括号结束后不需要。为什么呢?if (a > b) printf("hello!"); // semicolon is mandatory if (a > b) { printf("hello!...

52得票7回答
所有迭代算法都可以被递归表达吗?

所有的迭代算法都能用递归表达吗? 如果不能,是否存在一个好的反例来展示存在某些迭代算法没有对应的递归算法? 如果所有的迭代算法都能用递归表达,那么是否存在某些情况下更难做到这一点? 编程语言在其中扮演了什么角色?我可以想象Scheme程序员对于迭代(即尾递归)和堆栈使用可能与仅限于Java的程...

10得票10回答
11得票4回答
“真正的”多维数组的定义是什么,哪些编程语言支持它们?

我读过的大部分编程书籍都有以下这句话: "X 语言不支持真正的多维数组,但是您可以使用数组的数组来模拟(近似)它们。" 由于我大部分的经验都是用基于 C 的语言编写的,例如 C++、Java、JavaScript、php 等,我不确定什么是“真正”的多维数组。 什么是“真正”的多维数组,...

8得票4回答
类似正则表达式的矩阵模式搜索库

是否有任何语言的库可以像正则表达式处理字符串一样在矩阵中搜索模式?就像针对矩阵的正则表达式,或任何矩阵模式搜索方法一样?

9得票1回答
无上下文语言问题(泵引理)

我知道这与编程无直接关系,但我想知道有没有人知道如何将泵引理应用于以下证明: 展示L={(a^n)(b^n)(c^m) : n!=m}不是上下文无关语言 我对应用泵引理相当自信,但这个让我真的很恼火。你觉得呢?

9得票3回答
Scala中的Option[T]是从哪里来的?

我在Scala开发方面还是个新手,但我发现Option[T]概念非常棒,特别是在使用Some和None与模式匹配时。目前我甚至在一个C#项目中进行了一定程度的实现,但由于没有模式匹配,所以并不太棒。 真正的问题是,这个对象背后的理论是什么?它是Scala专有的东西吗?函数式语言?我应该在哪里...

23得票5回答
这/self指针强制显式的优势是什么?

什么是拥有this/self/me指针的强制性显式声明的优势? 根据OOP理论,方法主要(只?)操作成员变量和方法参数。因此,应该更容易引用成员变量而不是外部变量(从对象的角度来看)。显式的this使得它更冗长,因此引用成员变量比引用外部变量更加困难。这对我来说似乎是违反直觉的。