問題タブ [scala-2.8]

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 に答える
7148 参照

scala - Scala継続を使用したyield(yield return)の実装

yield returnScalaの継続を使用してC#をどのように実装できますか?Iterator同じスタイルでScalaを書けるようになりたいです。このScalaニュース投稿のコメントに刺し傷がありますが、機能しません(Scala 2.8.0ベータ版を使用して試してみました)。関連する質問の回答は、これが可能であることを示唆していますが、私はしばらくの間、区切られた継続で遊んでいますが、これを行う方法に頭を悩ませているようには見えません。

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

scala - フィルタのScalaコレクションタイプ

List(1、 "1")があり、List [Any]と入力されていると仮定します。これはもちろん正しく、期待されています。今、私がこのようにリストをマップすると

結果の型はList[Int]であり、これも期待されます。次の例ではList[Any]になるため、私の質問は、フィルターのマップに相当するものがあるかどうかです。これは可能ですか?これはコンパイル時に解決でき、実行時には解決できないと思いますか?

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

reflection - Scala ケース クラスのリフレクション

特定のデバッグ目的で、実行時にフィールドを検査できるように、ケース クラスに混在できる (Scala 2.8 の) トレイトを作成しようとしています。ソース ファイルで宣言された順序に戻して、ケース クラス内の他のフィールドを省略したいと考えています。例えば:

上記の実装は、Product 内のフィールドの位置とその名前の間の関係をそれらのフィールドの値の等価性によって推測するため、明らかに欠陥があります。

これを実装する方法はありますか?

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

scala - 2.8.x の Scala での柔軟で型指定された不変データ構造の管理

これは、Scala 2.8.0 ベータ版がこの質問に回答したためのフォローアップです。

Scala で柔軟で型指定された不変のデータ構造を管理する適切な方法は何ですか?

新しい手法は、ケース クラスをコピーすることです。

これはうまく機能しますが、Scala では 1 つのケース クラスで 22 個 (?) のプロパティに制限されているようです。それは多くのように思えるかもしれませんが、私の場合は不十分です。

23 の場合、「エラー: タイプ Function23 はパッケージ scala のメンバーではありません」というメッセージが表示されます。独自の Function23 などを定義することもできますが、それが意味することはわかりません。

だから今、私は振り出しに戻っています。回避しようとしている public vars を使用するか、26 以上のパラメーター コンストラクターとペアのコピー メソッドを作成する必要があります。イク。

22 は、ここではかなり恣意的な制限のようです。これを回避する方法はありますか?

これはデータのインポート用で、次のようになります。

フィールドの数を減らすために、未使用の抽出をコメントアウトしたことがわかります。

たぶん、これを行うためのより良い方法があります。この抽出手法は少し厳格だと思いますが、それが最善の方法かもしれません。

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

scala - Scala SetをJava(java.util.Set)に変換しますか?

私はScalaにセットを持っています(セットを作成するときに任意の実装を選択できます。使用しているJavaライブラリはjava.util.Set[String]を想定しています。

Scalaでこれを行う正しい方法は次のとおりです(scala.collection.jcl.HashSet#underlyingを使用):

それは機能しているようですが、私はScalaに非常に慣れていないので、これが好ましい方法であるかどうかを知りたいです(他の方法で試してみると、型の不一致エラーが発生します):

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

scala - さまざまな数値タイプのリストを受け入れる関数を定義するscalaの方法

次の問題があります。List[Double]をパラメーターとして受け取り、リストの要素に対していくつかの算術演算を実行してから、結果を返す関数があります。List[Int]も受け入れる関数が欲しいのですが。次に例を示します。

もちろん、fにはList[Int]ではなくList[Double]が必要なため、2番目のprintlnは失敗します。

また、関数自体の中で0(または他の定数)を使用する必要があることを証明するために、f関数内の合計の非scalaスタイルの定式化に注意してください(Int値を合計する場合、0.0ではなく0に初期化する必要があります。

DoubleとIntの両方で関数を機能させるための最良の方法(コードが少ない)はどれですか?

(2.8数値特性については、使用方法がよくわかりません...)

助けてくれてありがとう。

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

scala - 要素タイプTのクラスマニフェストが見つかりません

このSOの質問からいくつかのコードをコンパイルしようとして、このエラーメッセージが表示されましcannot find class manifest for element type Tた。動作を示す別のスニペットを次に示します。

問題が解決したことがわかりますnew collection.mutable.GenericArray[T](2)。どうやらマニフェストを提供することは他のオプションです...しかし、「マニフェストを提供することはどういう意味ですか? 」

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

scala - Array[T] または List[T] または Iterable[T] の関数で動作する関数

この SO questionで提供される回答のテスト/タイミング関数を作成しようとしていました。いくつかの答えはArray[T]、いくつかはList[T]、1 つはIterable[T]、もう 1 つはString!

私が書きたいのはshift*、質問または回答、入力リスト、述語、および期待される出力から関数を取得し、関数を実行する関数です。のような並べ替え:

不変のプロパティを持っているようですが、変更可能なプロパティArrayを持っているように見えるので、署名を理解することはできません。SeqListSeq

それを処理する最良の方法は何ですか?

編集:トーマスの提案を使用すると、これは私が得ることができる方法です(で動作しますがArray[Char]、では動作しList[T]ませんArray[T]):

ダニエルの回答は、コンパイルして、私が望んでいたことを達成するための別の方法を提供するので、承認済みとしてマークします-Array[T]のメソッドが新しい配列を作成しない限り(そしてマニフェストの問題をもたらします)。

(2):特定の配列要素をシフトするための機能的なアプローチはどのようになりますか?

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

scala - Scala:Numeric[T]のサブタイプの実装

Numeric [T]のサブタイプを実装するにはどうすればよいですか?私はこれに関するガイドを探していましたが、何も見つかりませんでした。サブタイプの例は、RationalまたはComplexでしょうか?

よろしくお願いしますTroels

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

scala - Scalaアクター:JRE1.5と1.6での異なる動作

私のシミュレーションでは、アクターとScala2.8-スナップショットを使用しています。Java JRE 1.5では、正常に動作します。40個のギア(アクター)すべてが同時に動作しています。Java JRE 1.6を使用すると、3つのギアのみが同時に動作します。GUIを使用してテストした場合と使用しない場合でテストしました。どちらも同じ結果になります。

GUIを使用したシミュレーションは、githubで入手できます:http://github.com/pmeiclx/scala_gear_simulation

多分あなたは俳優との私の最初の問題を覚えています。これらの問題を解決した後、シミュレーション用のGUIを実行し、この新しい「奇妙な」動作を取得しました。

GUIを使用しないコードは次のとおりです。