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

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

18
Scala 2.8コレクションライブラリは、「史上最長の自殺ノート」のケースですか?[閉まっている]
現在のところ、この質問は、Q&A形式には適していません。私たちは回答が事実、参考文献、または専門知識によってサポートされることを期待しますが、この質問はおそらく議論、議論、投票、または拡張された議論を誘います。この質問を改善でき、再開できると思われる場合は、ヘルプセンターにアクセスしてください。 7年前休業。 差し迫った2.8リリースで提供されるScalaコレクションライブラリの再実装を検討し始めたところです。2.7のライブラリに精通している人なら、ライブラリは使用法の観点からはほとんど変わっていないことに気付くでしょう。例えば... > List("Paris", "London").map(_.length) res0: List[Int] List(5, 6) ...どちらのバージョンでも機能します。ライブラリは非常に使いやすいです。実際、それは素晴らしいです。ただし、以前はScalaに慣れておらず、言語を理解するためにざっと見ていた人は、次のようなメソッドシグネチャを理解する必要があります。 def map[B, That](f: A => B)(implicit bf: CanBuildFrom[Repr, B, That]): That このような単純な機能の場合、これは困難なシグネチャであり、私が理解するのに苦労しているものです。Scalaが次のJava(または/ C / C ++ / C#)になる可能性が高いと私が思うわけではありません。その作成者がその市場を狙っていたとは思えませんが、Scalaが実現することは確かに実現可能でした次のRubyまたはPython(つまり、大幅な商用ユーザーベースを獲得するため) これは人々がScalaに来るのを先送りにするでしょうか? これは、専門の博士課程の学生だけが理解できる学術的な遊び道具として、Scalaを商業の世界で悪名にするのでしょうか?されCTO sおよびソフトウェアの頭はオフ怖がって取得するつもり? ライブラリの再設計は賢明なアイデアでしたか? Scalaを商業的に使用している場合、これについて心配していますか?すぐに2.8を採用する予定ですか、それとも何が起こるか確認するのを待ちますか? Steve Yeggeは かつてScalaを攻撃した(私の意見では誤解している)が、過度に複雑な型システムと見なしたものを攻撃した。私は誰かがこのAPIでFUDを広める実地の日を過ごすことを心配しています(Josh Bloch がJavaにクロージャーを追加することからJCPを怖がらせたのと同様に)。 注 - 私は私がいることを信じていながら、ことは明らかであるジョシュア・ブロックが、私は提案が間違いを表現することを彼の正直、信念以外にこれを帰ませんBGGA閉鎖案の拒否で影響を与えました。 私の妻や同僚が私に言い続けていることは何でも、私はばかだとは思わない:私はオックスフォード大学で数学の学位を取得しており、約12年間は商業的にプログラミングしており、Scalaで約1年(これも商用)。 扇情的な主題のタイトルは、1980年代初頭の英国の政党のマニフェストについてなされた引用であることに注意してください。この質問は主観的ですが、本当の質問です。CWにしました。この件についていくつかの意見をお願いします。

6
Scala vs. Groovy vs. Clojure [終了]
休業。この質問には、より焦点を当てる必要があります。現在、回答を受け付けていません。 6年前休業。 ロックされています。質問はトピックから外れていますが、歴史的に重要であるため、この質問とその回答はロックされています。現在、新しい回答や相互作用を受け入れていません。 Scala、Groovy、Clojureの主な違いについて誰かが説明してくれませんか。JVMで実行するためにこれらの各コンパイルを知っていますが、それらを単純に比較したいと思います。

13
時間関数は関数型プログラミングにどのように存在できますか?
私は関数型プログラミングについてあまり知らないことを認めざるを得ません。私はそれをあちこちから読んだので、関数型プログラミングでは、関数が何度呼び出されても、同じ入力に対して同じ関数が同じ出力を返すことがわかりました。これは、関数式に含まれる入力パラメーターの同じ値に対して同じ出力に評価される数学関数とまったく同じです。 たとえば、次のことを考慮してください。 f(x,y) = x*x + y; // It is a mathematical function 何回使ってf(10,4)もその価値は常にあります104。そのため、記述した場所はどこでも、式全体の値を変更せずに、でf(10,4)置き換えることができます104。このプロパティは、式の参照透過性と呼ばれます。 ウィキペディアが言うように(リンク)、 逆に、関数コードでは、関数の出力値は関数に入力された引数にのみ依存するため、引数xに対して同じ値で関数fを2回呼び出すと、同じ結果f(x)が両方生成されます。 (現在の時間を返す)時間関数は関数型プログラミングに存在できますか? はいの場合、どのようにして存在できますか?関数型プログラミングの原則に違反していませんか?これは、関数型プログラミングの特性の1つである参照の透過性に特に違反しています(正しく理解していれば)。 または、いいえの場合、関数型プログラミングの現在の時刻をどのように知ることができますか?

13
Scalaのオブジェクトとクラスの違い
私はインターネットでいくつかのScalaチュートリアルを調べているところですが、いくつかの例では、例の最初にオブジェクトが宣言されていることに気づきました。 違いは何であるclassとobjectScalaのでは?
636 scala  class  object 

12
Akkaの優れた使用例[終了]
休業。この質問は意見に基づいています。現在、回答を受け付けていません。 この質問を改善してみませんか?この投稿を編集して、事実と引用で回答できるように質問を更新してください。 6年前休業。 私はAkkaフレームワーク(Java / Scalaサービスプラットフォーム)について多くの絶賛を聞いていますが、これまでのところ、それが役立つユースケースの実際の例は多くありません。ですから、開発者がこれをうまく使ったことについて聞いてみたいと思います。 制限は1つだけです。チャットサーバーを作成する場合は含めないでください。(なぜですか?これは多くの類似したものの例として使いすぎているためです)

7
Scalaでのアンダースコアのすべての用途は何ですか?
私はscala-lang.orgで行われた調査のリストを見て、「_」のすべての使用に名前を付けられますか?」という奇妙な質問に気づきました。あなたはできる?はいの場合は、こちらから行ってください。説明例は高く評価されます。
540 scala 

1
Scalazが反復する:「大きい」モナドの「IterateeT」に一致するように「列挙」Tを「持ち上げる」
EnumeratorTと対応するものがあれば、IterateeT一緒に実行できます: val en: EnumeratorT[String, Task] = EnumeratorT.enumList(List("a", "b", "c")) val it: IterateeT[String, Task, Int] = IterateeT.length (it &= en).run : Task[Int] 列挙モナドがiterateeモナドよりも「大きい」場合、私は一致するようにiterateeを使用するupか、より一般的にHoistは「持ち上げ」ます。 val en: EnumeratorT[String, Task] = ... val it: IterateeT[String, Id, Int] = ... val liftedIt = IterateeT.IterateeTMonadTrans[String].hoist( implicitly[Task |>=| Id]).apply(it) (liftedIt &= en).run: Task[Int] しかし、iterateeモナドが列挙子モナドよりも「大きい」場合、どうすればよいでしょうか。 val en: EnumeratorT[String, …

16
Scalaのケースクラスとクラスの違いは何ですか?
Googleで検索して、a case classとaの違いを見つけましたclass。クラスでパターンマッチングを実行する場合は、ケースクラスを使用すると誰もが述べています。それ以外の場合は、クラスを使用し、equalsやハッシュコードのオーバーライドなどの追加の特典について言及します。しかし、これらがクラスの代わりにケースクラスを使用するべき唯一の理由ですか? Scalaのこの機能には、いくつかの非常に重要な理由があると思います。説明とは何ですか、またはScalaケースクラスの詳細を学ぶためのリソースはありますか?

9
Scalaのすべての記号演算子はどういう意味ですか?
Scala構文には多くのシンボルがあります。これらの種類の名前は検索エンジンを使用して見つけるのが難しいため、それらの包括的なリストが役立つでしょう。 Scalaのすべてのシンボルとは何ですか?それぞれのシンボルは何をしますか? 具体的には、私が知っているしたいのですが->、||=、++=、<=、_._、::、と:+=。
402 scala  operators 

2
Scalaは暗黙的にどこを探しますか?
Scalaの初心者への暗黙の質問は、コンパイラが暗黙の場所をどこで探すのでしょうか。言葉がなかったかのように質問が完全に形づくられることは決してないように見えるので、私は暗黙のうちに意味します。:-)たとえば、integral以下の値はどこから来ますか? scala> import scala.math._ import scala.math._ scala> def foo[T](t: T)(implicit integral: Integral[T]) {println(integral)} foo: [T](t: T)(implicit integral: scala.math.Integral[T])Unit scala> foo(0) scala.math.Numeric$IntIsIntegral$@3dbea611 scala> foo(0L) scala.math.Numeric$LongIsIntegral$@48c610af 最初の質問への回答を学ぶことにした人に続く別の質問は、明白な曖昧さのある特定の状況(しかし、とにかくコンパイル)で、コンパイラがどの暗黙の使用を選択するかです。 例えば、scala.Predefから2つの変換を定義StringするいずれかWrappedStringと相互にStringOps。ただし、どちらのクラスも多くのメソッドを共有しているので、たとえば、Scalaが呼び出し時にあいまいさについて不平を言わないのはなぜmapですか? 注:この質問は、問題をより一般的な方法で述べることを期待して、この別の質問に触発されました。この例は、回答で参照されているため、そこからコピーされました。

11
自己型と特性サブクラスの違いは何ですか?
特性の自己型A: trait B trait A { this: B => } 言う「Aも伸びていない具体的なクラスに混入することはできませんB」。 一方、次のとおりです。 trait B trait A extends B その言う「任意の(コンクリートや抽象)クラスがでミキシングAもBに混合されます」。 これらの2つのステートメントは同じことを意味しませんか?自己型は、単純なコンパイル時エラーの可能性を作成するためにのみ役立つようです。 何が欠けていますか?
387 scala  traits  self-type 


11
Scalaで型消去を回避するにはどうすればよいですか?または、なぜコレクションの型パラメーターを取得できないのですか?
Scalaでの悲しい事実は、List [Int]をインスタンス化すると、インスタンスがListであること、およびその個々の要素がIntであることを確認できますが、それがList [ Int]、簡単に確認できるように: scala> List(1,2,3) match { | case l : List[String] => println("A list of strings?!") | case _ => println("Ok") | } warning: there were unchecked warnings; re-run with -unchecked for details A list of strings?! -uncheckedオプションは、型の消去を非難します。 scala> List(1,2,3) match { | case l : List[String] => …

4
Scalaリストの連結、::: vs ++
Scalaのリストの連結:::との違いはあります++か? scala> List(1,2,3) ++ List(4,5) res0: List[Int] = List(1, 2, 3, 4, 5) scala> List(1,2,3) ::: List(4,5) res1: List[Int] = List(1, 2, 3, 4, 5) scala> res0 == res1 res2: Boolean = true 以下からのドキュメントのように見える++のに対し、より一般的で:::あるList固有。後者は他の関数型言語で使用されているため提供されていますか?

1
Scala:TypeTagとは何ですか?どのように使用しますか?
TypeTagについて私が知っているのは、マニフェストを何らかの方法で置き換えたことだけです。インターネット上の情報は乏しく、主題についての良い感覚を私に提供しません。 ですから、例や人気のあるユースケースを含め、TypeTagsに関するいくつかの有用な資料へのリンクを誰かが共有してくれれば幸いです。詳細な回答や説明も大歓迎です。

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