紙に見られるような派手なUnicode記号を使用する必要はありません。→の代わりに、->
特殊文字ごとに書くことができます。これを考えると、Haskellでは通常のUSQwertyレイアウトが完全に見つかります。
ただし、→スタイルが読みやすい(ただし、明らかに入力しにくい)場合は、代わりにそれらの記号を使用してEmacsにコードを表示させることができます。これは、構文の強調表示のように、完全に表面的なものです。→が表示されていても、ソースコードにはまだがあり、->
それを入力します。これを次のように有効にできます。
(setq haskell-font-lock-symbols t)
このシンボルモードでは、インデントの一部が少し奇妙に見える場合があります。ただ、しばらく使っていて全く問題ありませんでした。ASCIIサロゲートの代わりにきれいな記号を使用している場合は、コードをもっと見るのが好きです。
だからあなたはまだタイプします->が、それはただきれいに見えます。
ただし、ギリシャ文字のような派手な記号が必要な場合もあります。たとえば、論文からアルゴリズムを実装している場合は、変数名を同じに保つことが理にかなっている場合があります。このために、を介してEmacsのTeX入力モードを使用できC-\
ますTeX
。これにより、たとえば、を入力\lambda
して取得できるようになりますλ
。入力できる記号の完全なリストを表示するには、実行してから。M-x describe-input-method
と入力しTeX
ます。
最後に:Haskellは+や-のようなすべての「数学記号」を演算子としてサポートしています。実際、これらの文字で構成される識別子は自動的に中置されます。したがって、実際に独自の演算子を定義できます。次のように書くことができます:
a +++ b = a * a + b * b
そうすれば+++
、他の演算子と同じように、この関数を中置位置で使用できるようになります。Haskellは、Unicodeカテゴリを調べることで、どの文字が「演算子文字」であるかを判断できると思います。つまり、のような演算子を定義できます(実際に定義しました)×
。
要約すると、Haskellコードに特別な記号は必要ありません。すべてASCIIにすることができます。読みやすい場合は、Emacsにこれらの記号を使用してASCII Haskellコードをレンダリングさせることができ、TeX入力モードを使用して実際に入力することができます。