任何现有语言是否允许在函数名称中的任意位置使用函数参数?

Ada*_*ing 9 language-agnostic syntax programming-languages lang

当我们写(用某种语言或其他语言):

   lengthOf(n)
Run Code Online (Sandbox Code Playgroud)

我们认为它是英语"填空"结构的缩写,例如:

  length of __
Run Code Online (Sandbox Code Playgroud)

但是当我们写这样的东西时:

  isAnInteger(n)
  appendTo(n,m)
Run Code Online (Sandbox Code Playgroud)

我们想到的句子如下:

  __ is an integer
  append ___  to  ___
Run Code Online (Sandbox Code Playgroud)

因此,允许函数调用表达式似乎更自然:

  (n)isAnInteger
  append(n)to(m)
Run Code Online (Sandbox Code Playgroud)

'函数名称'是这样的:

  _isAnInteger
  append_to_
Run Code Online (Sandbox Code Playgroud)

任何人都可以命名现有的编程语言吗? 我知道面向对象的语言让对象成为前面的一个参数,但我想知道更灵活的语法.

lee*_*ers 1

是的,这样的事情确实存在,但不符合问题中提出的确切语法。

在 JavaScript 中,它称为链接,常见于 jQuery 等框架中,以便轻松动态创建和修改 DOM 元素:

$('<div/>')
 .css('background', '#f00')
 .css('width', '100px')
 .css('height', '100px')
 .hide()
 .appendTo('BODY')
 .fadeIn();
Run Code Online (Sandbox Code Playgroud)

前面的 jQuery 片段创建一个DIV元素,设置宽度、高度和背景颜色,隐藏DIV,将其附加到文档并应用淡入效果。

语法很重要。给出以下示例:

(n)isAnInteger
append(n)to(m)
Run Code Online (Sandbox Code Playgroud)

括号显然是函数参数分隔符。但您还需要函数名称分隔符和对象/事物分隔符。更好的语法是:

n.isAnInteger().append(n).to(m)
Run Code Online (Sandbox Code Playgroud)

这与 jQuery 语法非常相似:

 $('DIV')
  .filter(':visible')
  .appendTo('#new_element');
Run Code Online (Sandbox Code Playgroud)

它将找到DIV可见的元素并将它们复制到 id 为 的元素new_element

  • 提问者并不是在询问“更好的”语法,而是在询问“特定的”语法。 (3认同)