История изменений
Исправление KivApple, (текущая версия) :
Всего то нужно сделать, чтобы тип был в конце объявления (см. Kotlin, Rust, TypeScript, Python, Pascal и другие).
function foo(x: Int, y: Int): Int
или
function foo(x: Int, y: Int) -> Int
Ну и ещё может быть автовывод/any-тип, тогда тип не указывается.
Сразу исчезает неоднозначность и больше не нужно знать все типы, чтобы корректно распарсить файл.
Помимо упрощения парсера, это ещё и мне, как программисту, удобнее. В 90% случаев я решаю как назвать переменную раньше, чем выбираю её тип (так как имя переменной продиктовано алгоритмом, а тип уже деталями реализации, алгоритм, как правило, придумывается чуть раньше деталей). Соответственно, в языках где тип идёт после имени, не возникает этой небольшой паузы, когда ты уже знаешь имя, но чтобы продолжить писать код нужно ещё и сообразить какой должен быть тип, а просто имя записать не можешь. Мелочь, а приятно.
Исправление KivApple, :
Всего то нужно сделать, чтобы тип был в конце объявления (см. Kotlin, Rust, TypeScript, Python, Pascal и другие).
function foo(x: Int, y: Int): Int
или
function foo(x: Int, y: Int) -> Int
Ну и ещё может быть автовывод/any-тип, тогда тип не указывается.
Помимо упрощения парсера, это ещё и мне, как программисту, удобнее. В 90% случаев я решаю как назвать переменную раньше, чем выбираю её тип (так как имя переменной продиктовано алгоритмом, а тип уже деталями реализации, алгоритм, как правило, придумывается чуть раньше деталей). Соответственно, в языках где тип идёт после имени, не возникает этой небольшой паузы, когда ты уже знаешь имя, но чтобы продолжить писать код нужно ещё и сообразить какой должен быть тип, а просто имя записать не можешь. Мелочь, а приятно.
Исправление KivApple, :
Всего то нужно сделать, чтобы тип был в конце объявления (см. Kotlin, Rust, TypeScript, Python, Pascal и другие).
function foo(x: Int, y: Int): Int
или
function foo(x: Int, y: Int) -> Int
Ну и ещё может быть автовывод/any-тип, тогда тип не указывается.
Помимо упрощения парсера, это ещё и мне, как программисту, удобнее. В 90% случаев я решаю как назвать переменную раньше, чем выбираю её тип (так как имя переменной продиктовано алгоритмом, а тип уже деталями реализации, алгоритм, как правило, придумывается чуть раньше деталей). Соответственно, в языках где тип идёт после имени, не возникает этой небольшой паузы, когда ты уже знаешь имя, но чтобы продолжить писать код нужно ещё и сообразить какой должен быть тип, а просто имя записать не можешь.
Исправление KivApple, :
Всего то нужно сделать, чтобы тип был в конце объявления (см. Kotlin, Rust, TypeScript, Python, Pascal и другие).
function foo(x: Int, y: Int): Int
или
function foo(x: Int, y: Int) -> Int
Ну и ещё может быть автовывод/any-тип, тогда тип не указывается.
Помимо упрощения парсера, это ещё и мне, как программисту, удобнее. В 90% случаев я решаю как назвать переменную раньше, чем выбираю её тип. Соответственно, в языках где тип идёт после имени, не возникает этой небольшой паузы, когда ты уже знаешь имя, но чтобы продолжить писать код нужно ещё и сообразить какой должен быть тип, а просто имя записать не можешь.
Исходная версия KivApple, :
Всего то нужно сделать, чтобы тип был в конце объявления (см. Kotlin, Rust, TypeScript, Pascal).
function foo(x: Int, y: Int): Int
или
function foo(x: Int, y: Int) -> Int
Ну и ещё может быть автовывод/any-тип, тогда тип не указывается.
Помимо упрощения парсера, это ещё и мне, как программисту, удобнее. В 90% случаев я решаю как назвать переменную раньше, чем выбираю её тип. Соответственно, в языках где тип идёт после имени, не возникает этой небольшой паузы, когда ты уже знаешь имя, но чтобы продолжить писать код нужно ещё и сообразить какой должен быть тип, а просто имя записать не можешь.