Я уверен, что присоединяюсь к многим, радуясь тому, что наконец мощный язык тесно связан с основным интерфейсом GUI/Database/Communication.
Я не был уверен, где разместить это, но здесь кажется лучшим местом.
Мне нужно использовать символы символа Unicode либо как операторы, либо как имена функций. Я бы хотел синтаксический сахар, но мне это не нужно.
Гай Стил указал в сообщениях ACM, что "*" был вынужденным выбором, когда он был принят из Ascii как многократно, но мое программное обеспечение работает в Unicode, поэтому я больше не привязан к Ascii.
!$% & * + -/< = > @^ | ~:.
Часть локализации включает в себя локальных программистов. Зачем ограничивать набор операторов, которые могут быть определены в F #? Он не ортогонален принятию С# и F # многих Unicode IsLetter в идентификаторах.
Кроме того, F #, вероятно, будет использоваться для символического манипулирования задачами из логики, математики, физиков и т.д. Это облегчает работу, если theres прямое отображение на язык основных операторов. (F # и С# принимают много Unicode IsLetter?, А также IsDigit? Это запрос разрешить Unicode IsSymbol? Как операторы с приоритетом, например, *, или, поскольку "+" является и унарным, и двоичным оператором, я может мириться с приоритетом + и составлять разницу с скобками в скобках.
Рассмотрим специфические для домена потребности логиков, математиков, физиков и т.д. Id скорее напишет символический дифференциатор или интегратор, используя математические символы, чем перестановки Ascii уже принятых операторов.
- Логика: ∀ ∃ ⇒
- Математика: Σ ∫ ∂
- Теория групп: ≤ ≥ ∈ ∉
- Теория набора: ⊆ ⊇ ⊃ ∪ ∩
- Тензоры: ⊗
Ive написал много языков на других языках, но поскольку F # тесно интегрирована .Net, эта проблема создает особые проблемы без поддержки языка:
Его тривиально, чтобы перебирать переводчик, который берет Unicode-оператор F # source и сопоставляет его по строкам с исходным кодом F # Ascii-оператора.
Но когда отладка, как я могу убедиться, что программист все еще видит их нетранслируемый источник? И что они могут видеть переменные значения.
Операторы и их преобразования тривиальны. Но как я могу обеспечить перевод, который компилируется, а программист видит свой собственный источник? Если я правильно рисую строку для строки, как я могу убедиться, что они все равно могут указывать на переменную и видеть ее значение?