注:私は最初に thishttps://softwareengineering.stackexchange.com/ に質問しました=、しかし、私はそれをここに移動するように頼まれました。
現在SimplifierのCalculatorを開発しています。これにより、ユーザーは数学の問題で行うように、入力のセクションを角かっこで囲むことができます。しかし、私の質問は、他の種類の角かっこ(または中かっこ)も許可(またはそれ)する必要があるかどうかです。たとえば、許可する必要があります
this:2 [ 3 +{ 4 ^ 5 - ( 39 * 7 + 0 ) + 3 } ]
またはこれ:2 ( 3 +( 4 ^ 5 - ( 39 * 7 + 0 ) + 3 ) )
私が尋ねる理由:
最初のアプローチの長所(および2番目の短所)は次のとおりです。
2番目のアプローチの長所(および1番目の短所)は次のとおりです。
()
のみが許可されるプログラミングを紹介します。プログラマーのアプローチまたは数学者のアプローチにプログラムを最適化する必要がありますか?
(すでに chatroom でこの回答を提供していますが、ここに行きます)
同じ機能を持つ別のブラケットを使用すると、 ")"ブラケットのみを使用するように教えられるため、混乱を招くと思います。
対応するブラケットを表示するには別の方法を使用する必要があると思います。
多くのコードエディタでは、2つのブラケットのいずれかを選択すると、開始ブラケットと終了ブラケットが強調表示または下線付きで表示されます。
選択後だけでなく、標準に対応するブラケットに別の色を付けることもできます。入力をRainbowに変えるかもしれませんが、もっと「読みやすく」なると思います。
MS Excelが行うのと同じように、関連する括弧に色を付け、アクティブな括弧を強調表示してみることができます。
私は2番目のアプローチをお勧めします
_2 ( 3 +( 4 ^ 5 - ( 39 * 7 + 0 ) + 3 ) )
_
1)一般の人々はプログラマーではなく、数学の方程式について_{ }
_を教えられている学校で_( )
_を見ることに慣れていない
あなたは本当にここで2つの質問をしましたが、それにもかかわらず:
「電卓」は「{」(中括弧)と「[」(ボックス中括弧)をサポートする必要がありますか?
はい、アクセシビリティがキーワードです。 「身体障害者」ではなく、「学習行動」と同じです。一部の人々は、中かっこまたは中かっこを使用したいだけです。それは、紙の上で転がっている方法であり、現実のアプリケーションと仮想アプリケーションの間の障壁をできるだけ低くしたいからです。
ユーザーは、既に知っている対話パターンを使用できるはずです(他のことはイライラすることになるでしょう)。したがって、これらのブレースをサポートすることで、より便利になり、かっこだけを使用したい人を傷つけることはありません。
プログラマーのアプローチまたは数学者のアプローチに合わせてプログラムを最適化する必要がありますか?
なぜ両方ではない?多くのIDEとエディターで一致する中括弧が強調表示されているのをご存じでしょう。カーソルがそれらの1つにある場合、2つの一致する中括弧が強調表示されます。別のアプローチは、stereoactivoによって指摘されたExcelで使用される色分けです。
これらのアプローチはどちらも適用可能で、プログラマーと数学者の両方のライティングスタイルを読みやすくします。これは、仮想アプリケーションが実際のアプリケーションのトップになる可能性がある場所であり、常にニースです。
それ以外に、最適化とはどういう意味ですか? 2つのうち1つを最適化する上でのあなたのアイデアは何でしたか?
[複数の波括弧]は、処理をより困難にする可能性があります(構文エラーの検出、波括弧の不一致)。
それは確かに正しいですが、プログラマーではなく、ユーザーに主に関心があります。 (そして、正直に言って、不一致のブレースは実装すべきものではありません。物理計算機について話している場合は、もちろん、構築コストを検討する必要がありますが、質問はアプリケーションのみを検討することを意図したものだと思います。)
また、そもそもこれらの追加のブレースは、思考のエラーを検出するために使用されます。ミスマッチのブレースを書くと、確かに何かがひねられています。ユーザーにそれについてのヒントを与えることは確かに彼らの経験を向上させるでしょう。
一般に、ユーザーが既知のパターンを適応できるようにすることは、すべてのアプリケーションで望まれることであり、直感性の重要な要素であることがわかっています。したがって、一致する中括弧のチェックを含め、両方の書き方をサポートすることが最善の解決策のようです。
特定のケースでは、角括弧_()
_のみを使用する必要があります。
数学的に言えば、ブラケットが異なれば意味も異なります。例としてf(2+n)
という用語を考えてみましょう。次の2つの意味のいずれかになります。
角括弧を角括弧に置き換える場合は_f[2+n]
_:
使いやすさを向上させる方法は他にもあります。
上記の4つの異なる方法を示すために fiddle を記述しました。
1:両方のブラケットを強調表示すると、ユーザーがペアを識別しやすくなります。特に、カーソルが2つの閉じブラケットまたは2つの開始ブラケットの間にある場合に便利です。