Есть ли язык программирования с параметрами в имени функции - PullRequest
0 голосов
/ 06 ноября 2019

Часто код не так удобен для чтения, как мог бы быть, потому что параметры всегда находятся в конце имени функции. Пример: 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

Так вотмой вопрос: есть ли языки, которые включают эту концепцию?

1 Ответ

0 голосов
/ 12 ноября 2019

Предполагая щедрое толкование фразы «есть», Algol 60 может выглядеть как ваш пример. В частности, он допускает форму комментария в параметрах процедуры.

 add(5) Days To: (myDate);

Конкретное правило в грамматике, которое допускает это:

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

, то есть параметры вОператор процедуры может быть разделен запятой (как обычно) или произвольной последовательностью букв, разделенных ) и :(.

Пробелы везде игнорируются, поэтому и здесь все в порядке.

Буквенная строка рассматривается как комментарий, поэтому для всех комментариев она не имеет отношения к тому, что код делает на самом деле. Это так же верно, как и в предыдущем примере:

add(5) Bananas To: (myDate);

Мне сейчас, спустя почти 45 лет после моего последнего использования, мне кажется любопытным, что часть комментария может содержать только буквы, без цифр.

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

Пересмотренный отчет по алгоритмическому языку АЛГОЛ 60

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...