Оригинальная идея взята из поста Gabriel’s software development blog. Статья довольно старая, опубликована еще в прошлом году .
Если коротко:
def √(x:Double)=Math.sqrt(x)
def ∑(r:Range)(f:Int => Int)=r.foldLeft(0)(_+ f(_))
def ∏(r:Range)(f:Int => Int)=r.foldLeft(1)(_* f(_))
val s= ∑(1 to 100)(x=>√(x))
Это обычный Scala код! Выглядит он прикольным, потому что мы используем знакомые всем со школы/института символы. Но как сделать так, чтобы было удобно вводить эти символы для меня было загадкой.
В итоге недавно случайно придумал как это можно сделать просто и удобно средствами IDE, а точнее в NetBeans.
Я вбил все нужные мне символы в Code Templates (Tools → Options → Editor → Code Templates) и сделал два макроса для [Alt+<] = “←” и [Alt+>] = “⇒”.
Как это работает можно посмотреть здесь:
То есть вы вводите например alpha и жмете [Tab], в результате в код вставляется α. Самое главное, это настраивается только для нужного языка (в частности Scala), таким образом это не мешает в работе с другими языками. Также если вы хотите написать просто alpha, без преобразования, вы просто НЕ нажимайте [Tab] и всё!
Самое главное! Исходники должны быть в UTF-8 (ну или другой юникодной кодировке)!
P.S.: На самом деле вбивать весь греческий алфавит довольно скучное занятие, можно найти файл вроде этого:
C:\Documents and Settings\<USER_NAME>\.netbeans\6.9\config\Editors\text\x-scala\CodeTemplates\org-netbeans-modules-editor-settings-CustomCodeTemplates.xml
и сгенерить туда все аббревиатуры.
Вот пример моего файла – CustomCodeTemplates.zip. Внимание! Это только пример, возможно он Вам не подойдет.
Будьте аккуратны, перед обновлением сделайте резервную копию!