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

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

4
プログラミングの文脈で「代数」とはどういう意味ですか?
関数型プログラミングとPLTサークルで「代数」という用語を何度も聞いたことがあります。特に、オブジェクト、コモナード、レンズなどについて議論する場合はそうです。この用語をグーグルで検索すると、これらの構造の数学的説明が記載されたページが表示されますが、これは私にはほとんど理解できません。誰もがプログラミングの文脈で合同代数が何を意味するか、それらの重要性は何であるか、そしてそれらがオブジェクトとコモナードとどのように関連するか説明できますか?

5
封印された特性とは何ですか?
封印されたクラスは「Scalaでのプログラミング」で説明されていますが、封印された特性は記述されていません。封印された特性に関する詳細情報はどこで入手できますか? 封印された特性が封印されたクラスと同じかどうか知りたいのですが?または、そうでない場合、違いは何ですか?いつ封印された特性を使用するのが良いのですか(そうでない場合)?
332 scala  sealed  traits 

8
中括弧と括弧の間のScalaの正式な違いは何ですか?それらはいつ使用されるべきですか?
括弧()と中括弧で関数に引数を渡すことの形式的な違いは何{}ですか? 『Scalaでのプログラミング』の本から得た感想は、Scalaはかなり柔軟であり、私が一番好きなものを使用する必要があるということですが、コンパイルできるケースとできないケースがあります。 たとえば(単なる例としての意味です。この特定の例だけではなく、一般的なケースについて説明する応答があれば幸いです)。 val tupleList = List[(String, String)]() val filtered = tupleList.takeWhile( case (s1, s2) => s1 == s2 ) =>エラー:単純な式の不正な開始 val filtered = tupleList.takeWhile{ case (s1, s2) => s1 == s2 } =>結構です。

11
Scalaでjava.String.formatを使用するには?
.format文字列のメソッドを使用しようとしています。ただし、%1、%2などを文字列に配置すると、java.util.UnknownFormatConversionExceptionがスローされ、混乱を招くJavaソースコードの一部が示されます。 private void checkText(String s) { int idx; // If there are any '%' in the given string, we got a bad format // specifier. if ((idx = s.indexOf('%')) != -1) { char c = (idx > s.length() - 2 ? '%' : s.charAt(idx + 1)); throw new UnknownFormatConversionException(String.valueOf(c)); } …
322 java  string  scala  format 

18
Scalaでファイル全体を読みますか?
Scalaでファイル全体をメモリに読み込むためのシンプルで標準的な方法は何ですか?(理想的には、文字エンコーディングを制御します。) 私が思いつくことができる最高のものは: scala.io.Source.fromPath("file.txt").getLines.reduceLeft(_+_) または私はJavaの神に恐ろしいイディオムの 1つを使用することになっていますか?その最高のもの(外部ライブラリを使用しない)は次のようです: import java.util.Scanner import java.io.File new Scanner(new File("file.txt")).useDelimiter("\\Z").next() メーリングリストのディスカッションを読んでも、scala.io.Sourceが正規のI / Oライブラリであることにさえなっていることは、私には明らかではありません。その使用目的が正確にはわかりません。 ...とてもシンプルで覚えやすいものが欲しいです。たとえば、これらの言語ではイディオムを忘れることは非常に困難です... Ruby open("file.txt").read Ruby File.read("file.txt") Python open("file.txt").read()
312 scala 



3
Scalaの適用機能とは何ですか?
不自然な動詞化された名詞(AddTwoクラスにはapply2つ追加された!)の例から、私はそれを理解できませんでした。 私はそれが構文上の砂糖であることを理解しているので、(私はコンテキストから推測して)いくつかのコードをより直観的にするように設計されていたに違いありません。 apply関数を持つクラスはどのような意味を持ちますか?それは何のために使用され、コードを改善する目的は何ですか(非整列化、動詞の名詞など)? コンパニオンオブジェクトで使用するとどのように役立ちますか?
311 scala 

7
Scalaでの暗黙の理解
私はScalaのプレイフレームワークチュートリアルを進めていて、このコードスニペットに出くわしました。 def newTask = Action { implicit request => taskForm.bindFromRequest.fold( errors => BadRequest(views.html.index(Task.all(), errors)), label => { Task.create(label) Redirect(routes.Application.tasks()) } ) } だから私は調査することに決め、この投稿に出くわしました。 まだわかりません。 これの違いは何ですか: implicit def double2Int(d : Double) : Int = d.toInt そして def double2IntNonImplicit(d : Double) : Int = d.toInt 明白な事実以外は、メソッド名が異なります。 いつ使用する必要がありますimplicitか?その理由は?


5
ScalaでのSeqとListの違い
多くの例で、Seqが使用されていることもあれば、リストが使用されていることもありました... 前者がScala型であることとJavaからのリストである点以外に違いはありますか?
299 list  scala  collections  seq 

19
Scalaでループから抜け出すにはどうすればよいですか?
ループを解除するにはどうすればよいですか? var largest=0 for(i<-999 to 1 by -1) { for (j<-i to 1 by -1) { val product=i*j if (largest>product) // I want to break out here else if(product.toString.equals(product.toString.reverse)) largest=largest max product } } ネストされたforループをテール再帰に変換するにはどうすればよいですか? 22ページ目のFOSDEM 2009 http://www.slideshare.net/Odersky/fosdem-2009-1013261でのScala Talkから: 中断して続行Scalaにはありません。どうして?それらは少し必須です。多くの小さな関数をより適切に使用するクロージャとの相互作用方法を発行します。それらは必要ありません! 説明は何ですか?

5
Scalaの上位の型とは何ですか?
あなたはウェブ上で以下を見つけることができます: より高い種類の型==型コンストラクタ? class AClass[T]{...} // For example, class List[T] 定義に準拠する型を抽象化するため、これはより高い種類の型であると言う人もいます。 上位の種類は、他の型を取り、新しい型を構築する型です これらはタイプコンストラクターとも呼ばれます。(たとえば、Scalaでのプログラミング)。 より高い種類の型==型コンストラクターを型パラメーターとして受け取る型コンストラクター? 論文Generics of a Higher Kindで、あなたは読むことができます ...タイプを抽象化するタイプを抽象化するタイプ(「より種類の高いタイプ」)... " それはそれを示唆しています class XClass[M[T]]{...} // or trait YTrait[N[_]]{...} // e.g. trait Functor[F[_]] より親切なタイプです。 したがって、これを念頭に置いて、型コンストラクタ、より高い種類の型、および型コンストラクタを型パラメータとして取る型コンストラクタを区別することは困難です。したがって、上記の質問です。

1
QuasiquoteでShapelessを使用する方法?
withのShapeless内部からマクロを呼び出そうとしていますが、取得したいものが取得できません。quasiquoteScala 私のマクロはエラーを返しませんが、展開Witness(fieldName)しませんWitness.Lt[String] val implicits = schema.fields.map { field => val fieldName:String = field.name val fieldType = TypeName(field.valueType.fullName) val in = TermName("implicitField"+fieldName) val tn = TermName(fieldName) val cc = TermName("cc") q"""implicit val $in = Field.apply[$className,$fieldType](Witness($fieldName), ($cc: $className) => $cc.$tn)""" } これが私のField定義です: sealed abstract class Field[CC, FieldName] { val fieldName: String type …


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.