問題タブ [scala-collections]

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 投票する
2 に答える
725 参照

scala - うまくバリアントタイプを持つTraversableLike.mapのアナログで「ライブラリをポン引き」できますか?

mapScalaのような機能を追加したいとします。これはList、の行に沿ったもので、関数を2回の各要素にlist mapmap f適用します。(より深刻な例は、並列マップまたは分散マップの実装ですが、その方向の詳細に気を取られたくありません。)flist

私の最初のアプローチは

これは今うまくいきます

もちろん、それはs専用であり、 sやsなどの関数を使用して、Listこれを何に対しても機能させたくない理由はありません。したがって、2回目の試行は次のようになりますTraverseablemapSetStream

しかし、もちろん、結果をList[A]:に割り当てることはできません。

妥協点はありますか?Traversableのすべてのサブクラスにメソッドを追加し、そのタイプのオブジェクトを正常に返す暗黙の変換を記述できますか?

(これには恐ろしいCanBuildFrom特性を理解することが含まれると思います、そしておそらくbreakout!)

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

scala - Scalaコレクション:まったく予測できない動作

Scala2.8コレクションの動作にかなり不満を感じています。ここに問題があります:私は数独ボードを作成しています。A1からI9までのセルにラベルを付けています(文字は行、数字は列です)。ボード上のユニットのリストを取得したいと思います。これは、9行、夜の列、および夜の象限です。

これが私のscalaクラスです:

コード内のコメントを参照してください。具体的には、同じコードがunitListでコンパイルされず、run()で正常にコンパイルおよび実行されるのはなぜですか?

また、runメソッドの出力を観察すると、yieldキーワードによって返されるコレクションがVectorとListの間でランダムに切り替わっているようです。

私はここで完全に迷っています。

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

scala - Scalaでコレクション要素を交換するための優れた機能的な方法は何ですか?

私のプロジェクトでは、1つの一般的なユースケースが出続けています。ある時点で、ある種のソートされたコレクション(List、Seqなどは関係ありません)とこのコレクションの1つの要素があります。私がやりたいのは、指定された要素を次の要素(この要素が存在する場合)と交換するか、場合によっては前の要素と交換することです。

私は、手続き型プログラミング手法を使用してこれを実現する方法をよく知っています。私の質問は、関数型プログラミング(Scala)を使用して問題を解決するための良い方法は何でしょうか?


回答ありがとうございます。私自身が最も理解しているものを受け入れました。私は(まだ)関数型プログラマーではないので、どちらの答えが本当に最良であるかを判断するのはちょっと難しいです。私の意見では、それらはすべてかなり良いです。

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

scala - コレクションのビューとは何ですか。いつ使用しますか。

Scalaでは、多くの(すべて?)タイプのコレクションに対してビューを作成できます。

ビューとは正確には何であり、ビューはどのような目的に役立ちますか?

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

scala - Scala Immutable MultiMap

Scalaで書けるようになりたい

基になるMap[Owner、Set [Pet]]には、MapとSetの両方が不変である必要があります。コンパニオンオブジェクトを使用したImmutibleMultiMapの最初のドラフトは次のとおりです。

コメント行をエレガントに解決できますか?マップとセットの両方が不変になるはずです。

ありがとう!

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

scala - Scalaでの高速ランダムアクセスと高速成長のためのSeq

次のシナリオで、可変または不変の最高のScalaコレクション(2.8以降)は何でしょうか。

  • 順番に並べられているので、位置ごとにアイテムにアクセスできます(Seq)
  • アイテムを頻繁に挿入する必要があるため、コレクションはあまりペナルティなしで成長できる必要があります
  • ランダムアクセス。コレクション内の任意のインデックスにあるアイテムを頻繁に削除および挿入する必要があります

現在、可変ArrayBufferで良好なパフォーマンスが得られているようですが、もっと良いものはありますか?同様に機能する不変の代替手段はありますか?前もって感謝します。

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

scala - Scala でメモリ内の可変データ テーブルを格納するために使用する型は?

関数が呼び出されるたびに、指定された一連の引数値の結果がまだメモ化されていない場合、結果をメモリ内テーブルに入れたいと思います。1 つの列は結果を格納するためのもので、他の列は引数値を格納するためのものです。

これをどのように実装するのが最善ですか?引数には、いくつかの列挙型を含むさまざまなタイプがあります。

C# では、通常 DataTable を使用します。Scalaに同等のものはありますか?

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

java - Java での Scala コレクションの繰り返し

Java で Scala コレクションを反復するにはどうすればよいですか?

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

scala - タイプによる Scala コレクション フィルター

私はscalaを初めて使用し、次の問題に遭遇しました:

特定のタイプの要素のみを含む既存のコレクションのサブコレクションを取得したいと考えています。以下の作品:

しかし、メソッド「onlyInstancesOf[Type]」でコレクション クラスを拡張しようとすると、これは機能しません。最初に私の実装:

したがって、この拡張機能を使用して実行すると:

.size が 2 ではなく 4 を返したというエラーが表示されます。

私がする時:

私は例外を受け取ります:

したがって、明らかに、結果のセットには、フィルターで除外されるべき要素がまだ含まれています。

どうしてこうなったのかわからないのですが、どなたか説明していただけないでしょうか?

編集: Scala: Scala コード ランナー バージョン 2.8.0.final

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

scala - Mapを逆にする最も簡潔なScalaの方法は何ですか?

Mapを逆にする最も簡潔なScalaの方法は何ですか? Map には、一意でない値が含まれる場合があります。

編集:

の逆転は Map[A, B]与えるべきですMap[B, Set[A]](またはMultiMap、それはさらに良いでしょう)。