問題タブ [iota]

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.

0 投票する
3 に答える
8481 参照

enums - 型付き定数宣言一覧

次のプロパティを持つ定数の「列挙型」リストを作成したいと思います。

  1. 各識別子の値は連続しており、いくつかのギャップがあります。(私は、iota と空白の識別子がこの点で役立つと信じています)。
  2. 識別子はモジュール専用です。
  3. 定数は、同じ型の他の定数とのみ比較できます。

列挙はFUSEenum fuse_opcodeからのものに基づいています。これが私が達成しようとしていることのコードです(そして非常に間違っています):

0 投票する
2 に答える
403 参照

c++ - なぜ彼らはiotaのオペレーターバージョンを追加しなかったのですか?

値のシーケンスを増やしてイテレータ範囲を埋めるために、iotaテンプレート関数が標準ライブラリに追加されました。

の他のほとんどのテンプレートに<numeric>は、ユーザー指定の演算子を受け入れるバージョンがあります。これを持っている:

Tpのoperator++()をオーバーロードしたくない(またはオーバーロードできない)場合に便利です。このバージョンは、デフォルトのoperator ++()バージョンよりも広く使用できると思います。<

0 投票する
3 に答える
1421 参照

c++ - std::fill() に C++0x ラムダローカル変数を使用するには?

そこで、C++0x FAQS ページ ( http://www2.research.att.com/ ) の Bjarne による簡単な例に基づいて、ラムダが使用されているスコープ内のローカル変数にアクセスするラムダをテストしようとしました。 ~bs/C++0xFAQ.html#ラムダ

この簡単なテスト コードを試すと、次のようになります。

エラーが発生します:

この errmsg は、 std::fill() 署名が新しい値要素の割り当てに使用するために const Type& を必要とすることを示していると思います。

しかし、Bjarne の例で示されているように、この目的で fill() を使用できるようにするには、ラムダ キャプチャ句内で参照 '[&count]' を使用して元の値を再割り当てできるようにする必要があるのではないでしょうか。 'return ++count;' を介してインクリメントするカウント var で要素値をインデックス付けします。ラムダステートメントブロック?

私はまだこれらのラムダについて完全に理解していないことを認めます! :)

0 投票する
4 に答える
1339 参照

c++ - iota_n の適切な実装は何でしょうか (STL にアルゴリズムがありません)

C++11 では、STL にstd::iota関数が追加されました (参照を参照)。ただし、 とは対照的にstd::fill_nstd::generate_nはありませんstd::iota_n。そのための良い実装は何でしょうか? 直接ループ (代替 1) またはstd::generate_n単純なラムダ式による委任 (代替 2)?

代替案 1)

代替案 2)

両方の選択肢は、最適化コンパイラで同等のコードを生成しますか?

UPDATE : @Marc Mutz の優れた点を組み込み、目的のポイントでイテレータも返すようにしました。これはstd::generate_n、C++98 と比較して C++11 で更新された方法でもあります。

0 投票する
1 に答える
1754 参照

haskell - Haskell での Iota の実装

Iota は、コンビネータを 1 つしか使用しない、とてつもなく小さな「プログラミング言語」です。それがどのように機能するかを理解することに興味がありますが、使い慣れた言語での実装を確認すると役に立ちます。

私は、Scheme で書かれた Iota プログラミング言語の実装を見つけました。Haskellに翻訳するのに少し苦労しました。かなり単純ですが、私はHaskellとSchemeの両方に比較的慣れていません。

Haskell で同等の Iota 実装をどのように記述しますか?

0 投票する
5 に答える
48474 参照

c++ - std::vector を設定範囲に

std::vector<int>3 から 16 までのすべての数値など、範囲を設定する最良の方法は何ですか?

0 投票する
1 に答える
240 参照

static - 静的配列の展開されたループ

関数を呼び出すと

静的配列を使用するとforeach、リリースモードで自動的に展開されますか?

できなければ

の代わりにアンローリングを実現するために使用されforeachます。

さらに、DMD によって生成されたコードを将来私自身が調査できるように、アセンブリ コードを生成する DMD へのフラグはありますか?

更新:これまでの私の解決策は次のとおりです。

それは大丈夫ですか?

0 投票する
2 に答える
1709 参照

go - Goマップでキーを定義するIota?

map[int]stringがあり、次のように定義したいとしましょう。

パターンはありませんが、キーにはパターンがあるため、値を手動で維持したいと思います。を使用して列挙値を処理するのと同じように、キー リストを維持する方法はあります1 << 1 + iotaか?

定義されたシーケンスでキーを作成するための同様にエレガントな方法がある場合に限り、 iota をマップキーとして使用できるかどうかを尋ねているわけではありません (残念ながら、それは私の知る限りではありません)。