問題タブ [d]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
d - D言語によるアプリケーション開発
Dでアプリケーションを開発したことがある人のために、
- アプリケーションの構築にどのライブラリを使用しましたか?
- それらのライブラリは十分に文書化されていましたか?
- タンゴを使いましたか?
- Dは大きなアプリケーションを構築する準備ができていると思いますか?
- どのIDEを使用しましたか?多分降下?
printf - D で浮動小数点数を出力する
D プログラミング言語を最後に使用してからかなりの時間が経ちましたが、現在は科学計算を含むプロジェクトに使用しています。
たくさんの浮動小数点データがありますが、 を使用してそれらを印刷すると、次のwritefln
ような結果が得られます。4.62593E-172
これはゼロです! 文字列書式 % を使用して 0 などを出力するにはどうすればよいですか?
現在、私はハックを使用しています:
それは仕事をしますが、可能であればフォーマット操作を使用してやりたいです。
アップデート
誰かが提案しましたが、それに関する問題は、不writefln("%.3f", a)
必要な余分なゼロを出力
することです。0
0.000
1.2
1.200
c - 非整数の離散集合をどのように扱いますか?
ある既知の値セットから別の既知の値セットへのコンパイル時にチェック可能なマップを実行する必要があるプログラムがあります。
入力が整数または等間隔である場合、これは簡単です。私は行を反復処理するつもりですが、読みやすいマナーでルックアップを実行できるようにしたいと考えています。
私の現在の考え(私は好きではない)は、次のような列挙型を定義することです
次に、2 つのルックアップ用に設定します。
より良いアイデアはありますか?
編集:私の主な関心事は、検索しようとするものを制限することです。コードが無効なものを検索しようとする可能性がある場合は、コンパイルさえしないでください。
セットは小さく、反復時間はほとんど無関係です。
列挙型を超えて何かを得るものは何も見ていないので、今のところそれで行きます。OTOH この質問は引き続き見ていきます。
*
注: ポインターなどの問題をキャッチすることについては心配していません。for ループや変数の割り当てなどの単純なコードだけです。
核心:明確さと一般性のために上記を単純化しすぎました。私は実際に、3 つの非整数で不均一な軸と 1 つの非数値軸を持つテーブルを持っています。そして、この時点では、それを列挙する必要がある方向がわかりません.
私が探しているものの風味を与えるためのいくつかのリンク:
floating-point - 80 ビット IEEE 浮動小数点の等価性テストを行うにはどうすればよいですか?
関連:
ただし、x86 での80 ビット IEEE 浮動小数点(セクション 8.2 を参照) に関しては
特に、デフォルトでスケーリングされるため、オペランド間の表現可能な値の数を使用するこの実装が気に入っています。
1 つのユース ケースは、2 つの値が互いに近づく数値近似であり、それらが十分に近いかどうかを確認する必要があります。
ps 実装言語はDになりますが、翻訳できます。また、基になる型が何であれ自動的に処理できる実装 (たとえば、64 ビット実数しか利用できない場合) が理想的です。
open-source - D のオープン ソース プロジェクトはありますか?
約 2 年前に D を見たのを覚えています。見栄えがよく、典型的な言語ベンチマークのいくつかでは C よりも実際に高速で、一般的には問題ないように見えましたが、当時 D で書かれた実際のプロジェクトは見つかりませんでした。私はちょうど私が来たように去りました。
数年が経過した今、私は D で行われたプロジェクトがあったかどうか疑問に思っていました。できればオープンソースでコードを見て、その進行状況を確認してください。それとも、D は死んでいるのでしょうか?
ide - デバッガーが統合された D 用の IDE はありますか?
デバッガーが統合された D 用の IDE はありますか?
c++ - STL __merge_without_bufferアルゴリズム?
__merge_without_buffer()
C++ STL で使用されるアルゴリズムの適切な高レベルの説明はどこで入手できますか? このコードを D プログラミング言語で再実装して、いくつかの拡張機能を追加しようとしています。低レベルの詳細が多すぎてわかりにくいため、STLソースコードを読んだだけでは、アルゴリズムレベルで何をしているのか理解できないようです。また、やみくもにコードを翻訳したくはありません。なぜなら、それが機能しない場合、理由がわからず、拡張機能を追加できなくなるからです。
user-interface - D の GUI ライブラリ
D言語によるGUIプログラミングの現状は?言語開発者は、標準ライブラリに GUI を含めることを計画していますか?
リスト(回答からコンパイル)
memory - D ガベージ コレクタをオフにする
私は、遊んでみたい個人的なプロジェクトに D を使用することを検討している C++ プログラマーです。ガベージ コレクターを完全に無効にする方法があるかどうか、またそうするとどのようなリスクがあるのか疑問に思っていました。
new と delete をオーバーライドして malloc と free を使用することで、自分のメモリを管理できることはわかっていますが、そうする場合は、ガベージ コレクターをまったく実行しないほうがよいでしょう。
multithreading - スレッド ローカル ストレージが非常に遅いのはなぜですか?
私は、スレッド ローカル領域から割り当てることによって動作する D プログラミング言語用のカスタム マーク リリース スタイルのメモリ アロケータに取り組んでいます。割り当てごとに TLS ルックアップを 1 つだけ持つようにコードを設計した後でも、スレッド ローカル ストレージのボトルネックにより、これらの領域からメモリを割り当てる際に、他の点では同一のシングル スレッド バージョンのコードと比較して、大幅な (〜 50%) 速度低下が発生しているようです。割り当て解除。これは、ループ内で何度もメモリを割り当て/解放することに基づいており、ベンチマーク方法のアーティファクトであるかどうかを判断しようとしています。私の理解では、スレッド ローカル ストレージは基本的に、ポインターを介して変数にアクセスするのと同様に、追加の間接レイヤーを介して何かにアクセスする必要があるということです。これは間違っていますか?スレッド ローカル ストレージの通常のオーバーヘッドはどれくらいですか?
注: D について言及していますが、D に固有ではない一般的な回答にも関心があります。D のスレッド ローカル ストレージの実装は、最適な実装よりも遅い場合は改善される可能性が高いためです。