タグ付けされた質問 「standard-library」

5
すべての<algorithm>関数がコンテナーではなく範囲のみを取得するのはなぜですか?
には多くの便利な関数がありますが&lt;algorithm&gt;、それらはすべて「シーケンス」、つまりイテレータのペアで動作します。たとえば、コンテナがあり、そのstd::accumulate上で実行したい場合、次のように書く必要があります。 std::vector&lt;int&gt; myContainer = ...; int sum = std::accumulate(myContainer.begin(), myContainer.end(), 0); 私がやろうとしているのは: int sum = std::accumulate(myContainer, 0); 私の目では、これはもう少し読みやすく、はっきりしています。 コンテナの一部のみを操作したい場合があるかもしれないので、範囲を渡すオプションがあることは間違いなく便利です。しかし、少なくとも私の経験では、それはまれな特別なケースです。私は通常、コンテナ全体を操作したいと思うでしょう。 これは、コンテナとのコールを取るラッパー関数書くのは簡単だbegin()し、end()その上に、このような便利な機能が標準ライブラリに含まれていません。 このSTL設計の選択の背後にある理由を知りたい。


3
なぜ関数のタイプクラスがないのですか?
私がいじくり回してきた学習の問題で、適用、作成などの操作を行う関数の型クラスが必要であることに気付きました。理由... 関数の表現を関数そのものであるかのように扱うと便利な場合があります。そのため、関数の適用は暗黙的にインタープリターを使用し、関数の構成は新しい記述を導き出します。 関数の型クラスを取得したら、特別な種類の関数の型クラスを派生させることができます-私の場合、可逆関数が必要です。 たとえば、整数オフセットを適用する関数は、整数を含むADTで表すことができます。これらの関数を適用することは、整数を追加することを意味します。合成は、ラップされた整数を追加することにより実装されます。逆関数では、整数が否定されます。恒等関数はゼロをラップします。定数関数は、適切な表現がないため提供できません。 もちろん、値が本物のHaskell関数であるかのようにスペルする必要はありませんが、アイデアが得られたら、そのようなライブラリは既に存在し、おそらく標準のスペルを使用しているはずです。しかし、Haskellライブラリにはそのようなタイプクラスが見つかりません。 Data.Functionモジュールを見つけましたが、タイプクラスはありません-Preludeからも利用できる一般的な関数がいくつかあります。 だから-なぜ関数の型クラスがないのですか?「ないから」とか「思ったほど役に立たないから」?それとも、アイデアに根本的な問題があるのでしょうか? 私がこれまで考えていた最大の問題は、ループの問題を回避するために、実際の関数への関数の適用はおそらくコンパイラーによって特別に行われる必要があるということです。この関数を適用するには、関数適用関数を適用する必要があり、それを行うには、関数アプリケーション関数を呼び出す必要があります... より多くの手がかり 私が目指しているものを示すためのサンプルコード... {-# LANGUAGE MultiParamTypeClasses #-} {-# LANGUAGE FlexibleInstances #-} {-# LANGUAGE GADTs #-} -- In my first version, Doable only had the one argument f. This version -- seemed to be needed to support the UndoableOffset type. -- -- It seems …

4
クロスプラットフォームライブラリを作成するにはどの言語を使用すればよいですか?[閉まっている]
この投稿を改善してみませんか?この質問に対する詳細な回答を提供します。これには、引用と、回答が正しい理由の説明が含まれます。詳細が不十分な回答は編集または削除される場合があります。 休業。この質問には、より焦点を当てる必要があります。現在、回答を受け付けていません。 この質問を改善してみませんか?質問を更新して、この投稿を編集するだけで1つの問題に焦点を当てます。 5年前休業。 SyncML解析ライブラリ(UIなし)を構築します。これは、ライブラリのメソッドによって供給される、ホストアプリケーションによって提供される情報に基づいてメッセージを構築できる必要があります。また、ライブラリは、ホストアプリケーションのメソッドへのコールバックを実行できる必要があります。 これをコンパイルして、可能な限り多くのプラットフォーム(Windows、Windows Phone 7 OS、OSX、iOS、Linux、Android、BlackBerry)で利用できるようにしたいと考えています。基本的に、できるだけ多くのプラットフォーム。 優先事項は、これをモバイルデバイスで使用できるようにすることです。 質問: どの設定を使用する必要がありますか?(プログラミング言語、コンパイラ、IDEなど) これらの異なるプラットフォーム用にこのライブラリをコンパイルするにはどうすればよいですか、またどのように接続しますか? 他の情報はありますか?例:クロスプラットフォーム開発の主題をカバーする記事? この種のクロスプラットフォームプロジェクトはこれまでに行ったことがないため、正しい方向に導くために利用できる情報があれば歓迎します。 私自身、C#/。NETおよびObjective-Cの経験があります。
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.