Практика показывает, что неоднозначность между синтаксисом индексации:
some[index]
и синтаксисом аргументов типов
List[int]
создает ряд проблем.
В общем-то, вывод типов Немерла с ними справляется, но все же было бы лучше избавиться от этих пробелем. Это позволило бы:
1. Сделать алгоритм вывода типов более быстрым и простым.
2. Избавиться от уродливой точки, которую иногда нужно ставить перед аргументами типа.
3. Улучшить автодополнение при вводе значений в параметрах индексаторов.
4. Облегчить чтение кода содержащего явное указание параметров типов и индексаторов.
Собственно сделать это не сложно. Но есть три вопроса:
1. Какой синтаксис скобок выбрать для этого? Например, можно использовать скобки состоящие из двух символов (на подобии тех, что используются в квази-цитировании) — <( )>, [< >] или скобки в сочетании с некоторым символом: <% %>, <| |> и т.п. Скобки вида ([ ]) и [( )] лучше не использовать, так как они конфликтуют с имеющимися конструкциями.
2. Нужно ли делать это до выпуска версии 1.0 или отложить смену синтаксиса до будущей версии?
3. Делать ли такую смену в виде ключа компиляции допускающего как квадратные скобки с точкой (как принято сейчас), так и новые скобки?
Приветствуются любые мысли!
06.11.11 18:49: Перенесено из 'Nemerle'