可以在LISP中重载函数,就像它们可以在C#中一样吗?

Rob*_*ert 6 lisp overloading

我发现重载在我的C#代码中非常有用.我知道它也可以在许多其他语言中完成(C++肯定).

LISP是否允许超载或等效?

Rai*_*wig 6

Common Lisp没有.

Common Lisp不支持'重载'.

Common Lisp通过CLOS提供多态性,但不会重载.


Joã*_*des 4

是的,它确实有“类似的东西”,但更强大:通用函数

编辑:我不知道重载的定义意味着编译时解析。谢谢雷纳·乔斯维格。

  • 是的,但请注意,泛型函数执行运行时分派,而重载在编译时解决。从语义上讲,您始终可以使用泛型函数来代替重载,但反之则不然。 (2认同)
  • 是的,这就是通常的有限调度。我所说的不是单一调度与多重调度,而是运行时调度与编译时重载,它们是根本不同的。我的评论是对答案的后续评论,而不是您的评论。 (2认同)