问题标签 [programming-languages]
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.
c++ - 为什么变量名不能以数字开头?
不久前,我和一位新的 C++ 开发人员一起工作时,他问了一个问题:“为什么变量名不能以数字开头?”
除了某些数字中可以包含文本(123456L、123456U)之外,我无法给出答案,如果编译器认为带有一定数量字母字符的所有内容都是变量名,那将是不可能的。
那是正确的答案吗?还有其他原因吗?
c - DrScheme 中如何实现尾调用优化?
我听说蹦床是实施 TCO 的一种无效方式。DrScheme(PLAI Scheme,技术上)是如何做到的?它是否以“正确”的方式进行(即生成直接分支到尾调用的汇编代码,而不是通过堆栈和蹦床)?
programming-languages - 为什么尾调用优化需要垃圾收集?
为什么尾调用优化需要垃圾收集?是不是因为如果你在一个函数中分配内存,然后你想对它进行尾调用,就没有办法进行尾调用并重新获得该内存?(因此必须保存堆栈,以便在尾调用之后可以回收内存。)
vb.net - 为什么 VB.net 如此冗长?可以减脂吗?
语言会随着成熟而变得更加冗长吗?感觉就像每个新版本的 VB.net 都获得了更多的语法。是否可以像关键字“Dim”那样减少一些脂肪?C# 也感觉自版本 1 以来它的语法越来越多。
programming-languages - 您尝试使代码功能化的所有方式是什么?
以便您将来可以轻松地使您的程序并发。
programming-languages - Scheme中柯里化函数的实现
当我执行以下操作时会发生什么?
我知道我可以这样做:
现在我可以使用咖喱了。我很好奇的是函数的定义。是否行
以 x 作为参数创建一个新的 lambda,然后在 1 上调用它?或者它是否比这更聪明,它只是重新使用现有的。(例如,如果我这样做(curried 0)
,该((func x) 1)
行将等同于(curried 1)
- PLAI Scheme 这样做吗?)
language-agnostic - 是否应该从编程语言中删除(非接口类型的)继承?
这是一个颇具争议的话题,在你说“不”之前,真的、真的需要吗?
我已经编程了大约 10 年,老实说,我无法回想起继承解决无法以其他方式解决的问题的时间。另一方面,当我使用继承时,我可以回忆起很多次,因为我觉得我必须这样做,或者因为我认为我很聪明并最终为此付出了代价。
从实现的角度来看,我真的看不出任何不能使用聚合或其他技术来代替继承的情况。
我唯一需要注意的是,我们仍然允许接口继承。
(更新)
让我们举例说明为什么需要它,而不是说“有时它只是需要”。这真的一点帮助都没有。你的证据在哪里?
(更新 2 代码示例)
这是经典的形状示例,更强大,更明确的 IMO,没有继承。在现实世界中,几乎从来没有真正“是”其他东西的情况。几乎总是“在条款中实施”更准确。
c# - 是否有与 .NET 兼容但不支持无符号类型的语言?
假设我正在用 C# 编写一个库,但我不知道谁会使用它。
库的公共接口有一些无符号类型——uint、ushort。显然,这些类型不符合 CLS,并且从理论上讲,可能存在无法使用它们的语言。
现实中有这样的语言吗?
compiler-construction - 为什么解释的语言大多是鸭式的,而编译的语言有强类型?
我只是不知道,这有什么技术原因吗?为弱类型的语言实现编译器是否更难?它是什么?