演算子はキーワードや関数よりも読みやすいですか?[閉まっている]
現在のところ、この質問はQ&A形式には適していません。回答は事実、参考文献、または専門知識によってサポートされると予想されますが、この質問は議論、議論、世論調査、または広範な議論を求める可能性があります。この質問を改善し、場合によっては再開できると思われる場合は、ヘルプセンターをご覧ください。 7年前に閉鎖されました。 それは少し主観的ですが、どの要因がオペレーターを使いやすくするのか、鈍くて難しくするのかをより明確に理解したいと思っています。私は最近、言語の設計を検討してきましたが、私が常に振り返る問題の1つは、言語の重要な操作をいつ演算子にするか、キーワードや関数をいつ使用するかです。 Haskellは、カスタムオペレーターの作成が簡単であり、多くの場合、新しいデータ型が複数のオペレーターで使用できるようにパッケージ化されるため、これについてはやや悪名高いです。たとえば、Parsecライブラリには、パーサーを結合するための多数の演算子が付属して>.おり、.> 今のような宝石を覚えていますが、今の意味を思い出すことさえできませんが、彼らは実際に意味します。などの関数呼び出しleftCompose(parser1, parser2)は改善されましたか?確かにより冗長ですが、いくつかの点で明確です。 Cライクな言語での演算子のオーバーロードも同様の問題ですが、おなじみの演算子のよう+な意味を通常とは異なる新しい意味でオーバーロードするという追加の問題によって混同されます。 新しい言語では、これはかなり難しい問題のように思えます。たとえば、F#では、キャストはC#スタイルのキャスト構文または冗長VBスタイルの代わりに、数学的に導出された型キャスト演算子を使用します。C#:(int32) xVB:CType(x, int32)F#:x :> int32 理論的には、新しい言語にはほとんどの組み込み機能の演算子があります。変数宣言の代わりにdef、decまたはvar変数宣言のために、なぜそうでない! nameか、@ nameまたは類似した何か。それは確かに、宣言に続くバインディングを短縮します。@x := 5代わりに、declare x = 5またはlet x = 5 ほとんどのコードは多くの変数定義を必要とするでしょう。 オペレーターが明確で有用なのはいつですか?