языки с функциями, которые не нуждаются в скобках? - PullRequest
3 голосов
/ 07 июня 2009

IIRC, vb6 разрешены вызовы функций без (). IIRC, это разрешалось всякий раз, когда у func не было возвращаемого значения, и вы всегда могли использовать func (то же, params, здесь).

Какие другие языки позволяют это? Как вы думаете, что должно означать func без скобок? Какие у них правила?

Отказ от ответственности: я разрабатываю язык, так что если вы и будете расстроены, если я воспользовался этой идеей, тогда, пожалуйста, не пишите ее.

Ответы [ 15 ]

1 голос
/ 07 июня 2009

Perl:

To call subroutines:

NAME(LIST);    # & is optional with parentheses.
NAME LIST;     # Parentheses optional if predeclared/imported.
&NAME(LIST);   # Circumvent prototypes.
&NAME;     # Makes current @_ visible to called subroutine.

http://perldoc.perl.org/perlsub.html

1 голос
/ 07 июня 2009

Несколько примеров нетрадиционного использования или использования без скобок:

Объектив-C: [object functionNamePart1:arg1 functionNamePart2:arg2]
или: [object function]

F-Script (на основе цели-C): object functionNamePart1:arg1 functionNamePart2:arg2
или: object function

Лисп: (+ 2 2)

0 голосов
/ 22 ноября 2011

Функции Powershell не требуют скобок вокруг аргументов для вызовов функций. Это вызывает много путаницы:

function test($a,$b) {
write-host $a
}

test(1,2)

Вышеуказанные отпечатки: 1 2

(потому что (1,2) - это массив в Powershell, который передается в $ a)

Но дело в том, что вызовы методов (для объектов) требуют скобок

0 голосов
/ 01 января 2011

http://www.madore.org/~david/programs/unlambda/

Unlambda карри работает вместе с символом `, поэтому он не использует скобки.

0 голосов
/ 07 июня 2009

Haskell тоже не требует скобок.

...