任何带有"奇怪"函数调用的编程语言?

9 programming-languages function function-calls

我想知道,是否有任何编程语言可以让你有这样的函数调用:

function_name(parameter1)function_name_continued(parameter2);
Run Code Online (Sandbox Code Playgroud)

要么

function_name(param1)function_continued(param2)...function_continued(paramN);
Run Code Online (Sandbox Code Playgroud)

例如,您可以调用此函数:

int dist = distanceFrom(cityA)to(cityB);
Run Code Online (Sandbox Code Playgroud)

如果你已经定义了这样的distanceFromto函数:

int distanceFrom(city A)to(city B)
{
   // find distance between city A and city B
   // ...
   return distance;
}
Run Code Online (Sandbox Code Playgroud)

据我所知,在C,Java和SML编程语言中,这是不可能完成的.

您是否了解任何编程语言,您可以通过这种方式定义和调用函数?

kub*_*ubi 6

它看起来很像Objective-C

- (int)distanceFrom:(City *)cityA to:(City *)cityB {
    // woah!
}
Run Code Online (Sandbox Code Playgroud)


Fra*_*rar 6

听起来很像Smalltalk的语法,(这可以解释Objective-C的语法 - 请参阅kubi的答案).

例:

dist := metric distanceFrom: cityA to: cityB
Run Code Online (Sandbox Code Playgroud)

其中#distanceFrom:to:是一个名为metric的对象的方法.

所以你有"函数调用"(它们真的是消息发送)就像

'hello world' indexOf: $o startingAt: 6. "$o means 'the character literal o"
Run Code Online (Sandbox Code Playgroud)

编辑:我说过"真的,#distanceFrom:to:应该叫做#distanceTo:在城市课上,但无论如何." Justice指出,这将城市与公制联系起来,这是一个坏的.您可能想要改变度量标准有很好的理由 - 飞机可能使用测地线,而汽车可能会使用基于道路网络的最短路径.)