在你看来,你遇到过的最令人惊讶、最怪异、最奇怪或最“WTF”的语言特性是什么?

请每个回答只回答一个特征。


当前回答

反向波兰符号。这意味着实参在函数之前。换句话说,2加2就是2 +。

具有WTF特性的语言包括Forth、Postscript(是的,激光打印机的Postscript)和Factor。

其他回答

在JavaScript(和Java)中,你可以转义这样有趣的字符:

var mystring = "hello \"world\"";

如果你想把回车放到字符串中,那是不可能的。你必须像这样使用\n:

var mystring = "hello, \nworld";

这是正常的,也是意料之中的——至少对于一种编程语言来说。奇怪的是你也可以像这样转义一个实际的回车:

var mystring = "hello, \
world";

这是我的两分钱。在c++中:

int* t = new int(15);
delete t;

在Python中:

>>> a[0] = "hello"
NameError: name 'a' is not defined
>>> a[0:] = "hello"
NameError: name 'a' is not defined
>>> a = []
>>> a[0] = "hello"
IndexError: list assignment index out of range
>>> a[0:] = "hello"
>>> a
['h', 'e', 'l', 'l', 'o']

这些切片分配也会给出相同的结果:

a[:] = "hello"
a[42:] = "hello"
a[:33] = "hello"

在C语言中,数组可以像这样被索引:

a[10]

这很常见。

然而,鲜为人知的形式(真正有效!)是:

10[a]

这与上面的意思相同。

我不敢说XML是一种编程语言,但它不是贴近我们的内心吗?: -)

在我看来,XML中最奇怪的特性是以下是一个格式良好的文档:

<_....>
</_....>

下面是允许连续点的NT-Name的词法定义。