タグ付けされた質問 「scala」

Scalaは、主にJava仮想マシンを対象とする汎用プログラミング言語です。一般的なプログラミングパターンを簡潔、エレガント、タイプセーフな方法で表現するように設計されており、命令型プログラミングと関数型プログラミングのスタイルを融合しています。その主な機能は次のとおりです。型推論を持つ高度な静的型システム。関数タイプ; パターンマッチング; 暗黙的なパラメータと変換。演算子のオーバーロード。Javaとの完全な相互運用性。並行性

2
ステートフルオブジェクトの構築は、エフェクトタイプでモデル化する必要がありますか?
Scalaやのような関数環境を使用する場合cats-effect、ステートフルオブジェクトの構築はエフェクトタイプでモデル化する必要がありますか? // not a value/case class class Service(s: name) def withoutEffect(name: String): Service = new Service(name) def withEffect[F: Sync](name: String): F[Service] = F.delay { new Service(name) } 構造は間違いがないので、のような弱い型クラスを使用できますApply。 // never throws def withWeakEffect[F: Applicative](name: String): F[Service] = new Service(name).pure[F] これらはすべて純粋で確定的だと思います。結果のインスタンスは毎回異なるため、参照透過的ではありません。エフェクトタイプを使うのにいい時ですか?または、ここで異なる機能パターンがあるでしょうか?

4
Scala:固定ウィンドウでのリストの移動合計の計算
私はScalaを初めて使用するので、リストの固定ウィンドウで移動合計を計算したいと思います。 例:リストの値(1.0、2.0、3.0、6.0、7.0、8.0、12.0、9.0、4.0、1.0)と期間4を指定すると、関数は(1.0、3.0、6.0、12.0、18.0、 24.0、33.0、36.0、33.0、26.0) list.size <periodの場合、累積合計を返します。 私はいくつかの試みをしました def mavg(values: List[Double], period: Int): List[Double] = { if (values.size <= period) (values.sum ) :: List.fill(period -1)(values.sum ) else { val rest: List[Double] = mavg(values.tail, period) (rest.head + ((values.head - values(period)))):: rest } } しかし、私は得ました List(12.0, 18.0, 24.0, 33.0, 36.0, 33.0, 26.0, 26.0, 26.0, …

3
Scalaイテレータを折りたたみ、結果として遅延評価されたシーケンスを取得する方法は?
文字列のイテレータがあり、各文字列は"H"(ヘッダー)または"D"(詳細)のいずれかです。このイテレータをブロックに分割します。各ブロックは1つのヘッダーで始まり、0から多くの詳細を指定できます。 私はすべてをメモリにロードするこの問題を解決する方法を知っています。たとえば、次のコードは次のとおりです。 Seq("H","D","D","D","H","D","H","H","D","D","H","D").toIterator .foldLeft(List[List[String]]())((acc, x) => x match { case "H" => List(x) :: acc case "D" => (x :: acc.head) :: acc.tail }) .map(_.reverse) .reverse 5ブロックを返します-- List(List(H, D, D, D), List(H, D), List(H), List(H, D, D), List(H, D))私が欲しいものです。 ただし、List[List[String]]結果ではなくIterator[List[String]]、結果を遅延評価できる他の構造が必要であり、イテレータ全体が消費された場合に入力全体をメモリにロードせず、消費されているブロックのみをメモリにロードしたい一度に(例:を呼び出すときiterator.next)。 上記のコードを変更して、必要な結果を得るにはどうすればよいですか? 編集:私が使用する環境はそれに固執するので、私は特にこれをScala 2.11で必要とします。他のバージョンの回答も受け入れてくれてうれしいです。
8 scala 

1
公開されたアーティファクトにsbtにJava以外のソースを含めるにはどうすればよいですか?
公開されたアーティファクトにsbtにJava以外のソースを含めるにはどうすればよいですか? Kotlinプラグインを使用していて、公開されたソースjarに.ktファイルを含めるようにsbtを強制する方法がわかりません。.javaファイルのみが含まれます。 オンラインの多くの人が次のコードをsbtスクリプトに追加することを提案していますが、それは役に立ちません mappings in (Compile, packageSrc) ++= { val base = (sourceManaged in Compile).value val files = (managedSources in Compile).value files.map { f => (f, f.relativeTo(base).get.getPath) } }, 私も試しました includeFilter in (Compile, packageSrc) := "*.scala" || "*.java" || "*.kt", これはsbtコンソールのいくつかの変数の出力です sbt:collections> show unmanagedSourceDirectories [info] * /home/expert/work/sideprojects/unoexperto/extensions-collections/src/main/scala [info] * /home/expert/work/sideprojects/unoexperto/extensions-collections/src/main/java …
8 scala  sbt 
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.