1
1
这是一个技巧问题:如果你确定了这样一个特性,那么它仅仅意味着另一种语言根本就不是“相似的”! 但是如果你放宽相似性的要求,对我来说最明显的就是条件。在普通的Lisp中,条件类似于更灵活的异常形式。您可以调用一个函数,该函数表示一个条件(比如抛出一个异常),但调用方随后可以说“继续并继续”。在Java中,一旦抛出异常,在投掷点就不可能继续执行。 (我知道我也可以说“宏”,但这是一个CL的领域,可以说与Java完全不同。) |
2
4
你在寻找一个简单的例子,在一个语言中微不足道,在Java中很难做到。 这个内联组件的一行程序如何(在C程序中)?
祝你好运,爪哇先生; |
3
3
通常,你不会尝试1:1的翻译。每种语言都有不同的习语,因此用另一种语言“正确地”重写时,相同的算法或程序结构可能看起来非常不同。 也就是说,我认为Java中的列表理解和其他功能概念是完全缺乏的。例如,haskell的惯用解决方案 this question :
这将需要Java中更多的行来实现,而且仅此而已。 之后 你已经把你的头绕在它的工作方式上了。 |
4
1
C没有异常的概念,但是您可以使用setjmp。C+有例外,谢天谢地。我认为任何Java到C都是粗糙的(另一方面,不是那么多…虽然函数指针触发了一些人)。GOBEXT已经在C中使用,在C中做OO,但实际上,如果你想要OO,使用C++。
|
5
1
这个怎么样:
好的,这可能仍然很容易,但是尝试翻译Java代码,它使用反射到其他任何东西。尤其是如果反射被用来动态生成类… |
6
1
我喜欢Bendlas给出的C/C++中代码的例子,它并不完全转化为Java。另一个例子是:
这将使用反射构造
|