是否存在一种函数名称中带有参数的编程语言

问题描述 投票:1回答:1

通常,代码不那么可读,因为参数始终位于函数名称的末尾。例如:addDaysToDate(5, myDate)

我想到了这样的可读性更好的语法:

function add(days)DaysTo(date) {
  // Some implementation
}

var myDate = new Date()
add(5)DaysTo(myDate)

您可能会发疯:

addA(5)('dollar')CouponTo(order)If(user)IsLoggedIn

所以这是我的问题:是否有任何包含此概念的语言?

programming-languages language-design
1个回答
0
投票

假设对短语“存在”进行了慷慨的解释,那么:Algol 60可能看起来像您的示例。具体来说,它允许在过程参数中使用一种注释形式。

 add(5) Days To: (myDate);

语法中允许这样做的特定规则是:

<parameter delimiter> ::= , | ) <letter string> : (

也就是说,过程语句中的参数可以用逗号分隔(通常)或用):(分隔的任意字母序列。

空格无处不在,因此在这里也可以。

字母字符串被视为注释,因此对于所有注释,它与代码的实际作用无关。这与前面的示例一样有效:

add(5) Bananas To: (myDate);

[我似乎很奇怪,在我上次使用此工具后将近45年,注释部分只能包含字母,不能包含数字。

 <letter string> ::= <letter> | <letter string> <letter>

Revised Report on the Algorithmic Language ALGOL 60

© www.soinside.com 2019 - 2024. All rights reserved.