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

Scalaは、主にJava仮想マシンをターゲットとする汎用プログラミング言語です。一般的なプログラミングパターンを簡潔、エレガント、タイプセーフな方法で表現するように設計されており、命令型プログラミングと関数型プログラミングのスタイルを融合しています。

3
名前付き関数を定義するための重複した構文は、言語設計の悪い決定ですか?
私は楽しみのためにプログラミング言語をモデリングしており、構文はScala、特に関数定義に大きく影響されています。 私の言語は、def構文(クラスメソッド)によって定義された関数と値に割り当てられた匿名関数(を使用して作成された)を区別しないため、設計上の問題が発生しました=>- 実装と動作の両方の違いが取り除かれます。 その結果、次の2つの定義は同じ意味になります。 def square(x: Int) = x*x val square = (x: Int) => x*x 後者の形式(即時の無名関数の割り当て)が通常の状況で使用される理由はありません- フォームの代わりにそれを使用することは単に可能defです。 名前付き関数を定義するためにそのような重複した構文を使用すると、言語の直交性やその他の設計上の側面が損なわれますか? メソッドと名前付き関数の短くて直感的な定義(を介してdef)と匿名関数の短い定義(を使用=>)が可能になるため、このソリューションを選択します。 編集:Scala は 2つを区別します。無名関数はdef、Scalaで定義されたメソッドと同じではありません。違いは比較的微妙ですが、以前にリンクした投稿を参照してください。

2
Scalaを学ぶ、落胆した[閉じた]
休業。この質問には、より焦点を当てる必要があります。現在、回答を受け付けていません。 この質問を改善してみませんか?質問を更新して、この投稿を編集するだけで1つの問題に焦点を当てます。 6年前休業。 私はJavaの出身で、Scalaを学ぼうとしています。現在、私はかなり圧倒されていると感じています。Scalaで学ぶことはまだまだたくさんあり、同じことを行うためのさまざまな方法があるようです。 どこから始めればいいのか、そしてその言語で適度に有能だと感じるまでにどれくらいの時間がかかったのか、誰かアドバイスはあるのだろうかと思いました。 forループ内包表記のような小さなことでも本当に強力に見えますが、これは覚えておかなければならない構文のもう1つの断片です!
9 java  scala 

2
Scalaでの自己型と特性継承の違いは何ですか?
グーグルドすると、このトピックに対する多くの回答が出てきます。しかし、これらの2つの機能の違いをうまく説明しているようには思えません。もう一度試してみたいのですが、具体的には... 継承ではなく自己型でできること、およびその逆は何ですか? 私には、2つの間に定量化可能な物理的な違いがあるはずです。そうでなければ、それらは名目上異なるだけです。 特性AがBまたは自己型Bを拡張する場合、どちらもBであることは要件であることを示していませんか?違いはどこですか?

4
ビッグデータが機能する必要があるのはなぜですか?
最近、インターンシップのためにビッグデータに関連する新しいプロジェクトに取り組み始めました。私のマネージャーは関数型プログラミングの学習を始めることを推奨しました(彼らはScalaを強く推奨しました)。私はF#を使ってささやかな経験をしましたが、このプログラミングパラダイムを使用することの重要性を理解できませんでした。 ディーンはこのトピックについて興味深い話をし、ここで「ビッグデータ」を使用する理由についての彼の考えを共有しました:http : //www.youtube.com/watch?v=DFAdLCqDbLQ しかし、ビッグデータは意味がないので、あまり便利ではありませんでしたHadoopのみ。 BigDataは非常にあいまいな概念なので。しばらく忘れます。私は、データを処理するときにさまざまな側面を比較するための1つの簡単な例を考え出して、機能的な方法が高価であるかどうかを確認しました。関数型プログラミングが小さなデータに対して高価でメモリを消費する場合、なぜビッグデータに関数型プログラミングが必要なのですか? 派手なツールから遠く離れて、私は3つのアプローチを使用して1つの特定の人気のある問題の解決策を構築しようとしました:命令的な方法と機能的な方法(再帰、コレクションの使用)。時間と複雑さを比較して、3つのアプローチを比較しました。 Scalaを使用してこれらの関数を記述しました。3つのパラダイムを使用してアルゴリズムを記述するのに最適なツールだからです。 def main(args: Array[String]) { val start = System.currentTimeMillis() // Fibonacci_P val s = Fibonacci_P(400000000) val end = System.currentTimeMillis() println("Functional way: \n the Fibonacci sequence whose values do not exceed four million : %d \n Time : %d ".format(s, end - start)) val …

2
Scalaステートメントを区切るにはセミコロンを使用する必要がありますか?
私はJavaからセミコロンでステートメントを区切るのに慣れているので、当然Scalaコードでもそれを行います。また、1つのステートメントが終了し、別のステートメントが開始する場所が明らかであるため、コードが読みやすいと感じています。しかし、SOにScalaコードを投稿すると、セミコロンを削除するためにコードが編集されることがよくあります。 セミコロンを使用する必要がありますか?「公式」のガイドラインやコーディングスタイルはありますか? セミコロンが必要な場合はありますが、それ以外の場合はコードがあいまいですか?

1
ScalaのXMLリテラルの何が問題になっていますか?
で、この記事、マーティン(言語の頭本町)が書いています: [XMLリテラル]当時は素晴らしいアイデアだと思われていましたが、今では親指のように突出しています。新しい文字列補間スキームを使用すると、すべてのXML処理をライブラリーに入れることができると信じています。これは大きな利益になるはずです。 私自身、言語設計に興味を持っているので、疑問に思っています。なぜ、XMLリテラルを言語に組み込むのが誤りだったと彼は書いているのでしょうか。この機能に関する論争は何ですか?

9
機能開発のためのOSの選択[終了]
休業。この質問は意見に基づいています。現在、回答を受け付けていません。 この質問を改善してみませんか?この投稿を編集して、事実と引用で回答できるように質問を更新してください。 4年前休業。 私は主に.NET開発者なので、通常はWindows / VisualStudioを使用します(つまり、私は甘やかされています)が、Haskellや他の(ほとんどの場合は機能する)言語を余暇に楽しんでいます。 Haskellの場合、windows-supportは問題ありません(Haskell-Platformを入手できます)が、latley基本的なClojure / Scheme環境をセットアップしようとしたところ、Windowsでの面倒な作業でした。 それで、私はより良いツールと言語サポートのために別のOSを試すことを考えています。もちろん、MacOSやLinuxディストリビューションが残っています。 私は以前にMacOSを使用したことがなく、もちろんLinuxの方が安く(無料)、通常のPCハードウェアでMacOSを並列起動できないと思います(できますか?)。プラス:私がそれらの(私にとって)外部のOSで使用できるツールについての手がかりはありません。 簡単に言うと、Haskell、Clojure、Scala、Schemeをさらに探索したいのですが、もちろん、JavaScript / HTML5 / Cssに少なくとも優れたツールが必要です。.NET / Mono / F#のサポートは素晴らしいですが、これについてはまだWin7ブートを使用します。 だから私は知りたい:-あなたの好きなOS、ディストリビューションは何ですか(Ubuntuは実行可能ですか?)-どのエディター/ IDEを使っていますか? ご協力ありがとうございました! PS:これがこの質問に適切な場所かどうかはわかりませんが、確かにそうだと思います。そうでない場合は、これをどこに移動すればよいか教えてください(StackOverflowは適切な場所ではないようです)

3
関数型言語でのゲッターとセッター
関数型プログラミングの原則の1つは、純粋関数の使用です。ピュア関数は、副作用がなく、参照的に透過的な関数です。 ゲッターは参照透過的ではありません-ゲッターへの呼び出しの間にセッターが呼び出されると、ゲッターの戻り値はパラメーターがない(通常はパラメーターがない)場合でも変化します。 セッターは副作用を生み出します-セッターを呼び出すと、通常、戻り値ではない値が操作されます(実際、伝統的にセッターは何も返しません)。 Scalaでは、2つのパラダイム(関数型とオブジェクト指向)を組み合わせてJavaのような言語で行うようにゲッター/セッターを使用しているという事実を受け入れてくれることを知っています。 Haskellのような言語(私は流暢ではありませんが、「純粋な」関数型言語に当てはまると言われています)では、ゲッターが参照透過でセッターであるようにオブジェクトのプロパティをモデル化する方法に興味があります副作用はありませんか? 解決策は、セッターが呼び出されたオブジェクトのコピーをセッターの戻り値として返すことであり、このコピーにはプロパティ値の変更が含まれていますか?

5
JVMベースの言語の中で明確なリーダーはいますか?[閉まっている]
休業。この質問は意見に基づいています。現在、回答を受け付けていません。 この質問を改善してみませんか?この投稿を編集して、事実と引用で回答できるように質問を更新してください。 6年前休業。 これらのプロジェクトの現在の状況はどのようなもので、どれか1つ(または2つ)が明確なリーダーとして浮上していますか? この質問をする私の動機を示すために、数年前にあなたの心を投げ返してください。プロトタイプとjQueryは、MooToolsのような他のプレイヤーも生き残るために戦っていました。今日に早送りしてください。一般的なコンセンサスは、jQueryが最高の汎用JavaScriptライブラリーであるということです。 これらのJVMベースの言語を使用して、過去数年間で同様のことが起こりましたか?特定の言語が荒廃し、放棄されたことがありますか?私が読んだことから、Scalaは確かにお気に入りになる準備が整っているようですが、繰り返しますが、私が読んだほとんどすべてが数年前のものです。 もう少し調査を行いました。Googleトレンドを使用して、何年にもわたって検索ボリュームをチェックするというアイデアがありました。Groovyのボリュームが減少し、Scalaのボリュームが一定(最悪)またはわずかに増加(最高)の間、JythonとJRubyは比較的関心がないようです。これは正確な評価ですか? そして、はい、Jython、JRuby、Groovy、Scala、Clojureなど、JVM上の非Java言語を指します。
9 java  scala  jvm  groovy  jruby 

4
JavaでのScalaのスケーラビリティ
私はScalaがJavaよりも並行性をうまく処理するという記事を読みました。 http://www.theserverside.com/feature/Solving-the-Scalability-Paradox-with-Scala-Clojure-and-Groovy ...スケーラビリティの制限は、特にJavaプログラミング言語自体に限定されますが、Javaプラットフォーム全体の制限ではありません... Javaのスケーラビリティの問題は新しい発見ではありません。実際、これらの問題に対処するために多くの作業が行われ、最も成功したプロジェクトの2つはScalaとClojureという名前のプログラミング言語です... ... Scalaは、Java言語の問題のあるスレッドとロックパラダイムを回避する方法を見つけています... これはどのようにして可能ですか?Scalaは、JavaからScalaにすべてのスレッドとロックの問題をもたらすJavaのコアライブラリを使用していませんか?

2
MixinとTraitの違いは何ですか?
ScalaとHackからわかることから ミックスイン: 状態を持つことができます(つまり、インスタンスプロパティ) 具体的な方法しか提供できない クラスが混合されたのと同じ順序で呼び出されるコンストラクターを持つことができます もしA混合物中BとC、A instanceof B == falseそしてA instanceof C == false 特徴: メソッドのみを提供でき、状態は提供できません コンシューマが実装する必要がある抽象メソッドを宣言できます コンストラクタを持つことはできません AトレイトBとを実装する場合C、A instanceof B == falseおよびA instanceof C == false これは正しいですか、または何か不足していますか?これらの定義は、任意のOO言語に対して正確ですか、それとも上記の言語に対してのみ正確ですか?

5
Clojureの構文はScalaの構文よりも本当に単純ですか?[閉まっている]
現在のところ、この質問はQ&A形式には適していません。回答は事実、参考文献、専門知識によって裏付けられると期待していますが、この質問は、討論、議論、投票、または拡張ディスカッションを求める可能性があります。この質問を改善でき、再開できると思われる場合は、ヘルプセンターにアクセスしてください。 6年前休業。 常にClojureを支持して行われる議論はそれです。 構文はより単純で、複雑なルールなしでコードを表現する方法は1つだけです。 ただし、Scalaには、Clojureと比較して、さまざまなタイプの構文と構成体がロードされています。 しかし、Clojureを学ぼうとしている過去1週間から、組み込みマクロのリストが無限であることに気づきました。同じ括弧構文でそれらを書いたとしても、それぞれがどのように機能するかを学ぶ必要があります。 では、どのような意味でClojureの構文は単純なのでしょうか。LISPerにとってはそうかもしれませんが、Scalaでさまざまな構成を学習するさまざまなバックグラウンドを持つ人々にとっては、より簡単に思えます。 中立的な観点から、どの構文がよりシンプルで読みやすいですか?
8 scala  clojure 

4
Scalaの良いユースケースは何ですか?[閉まっている]
現在のところ、この質問はQ&A形式には適していません。回答は事実、参考文献、専門知識によって裏付けられると期待していますが、この質問は、討論、議論、投票、または拡張ディスカッションを求める可能性があります。この質問を改善でき、再開できると思われる場合は、ヘルプセンターにアクセスしてください。 7年前休業。 現在のプロジェクトでは、JavaとScalaを混合できるようにビルドをセットアップしています。コードをより読みやすく簡潔にするために、コードベースでより多くのScalaを使用したいと思います。その過程で、実際の機能を引き継ぐことによって言語を学びます。 そのため、一部のクラスではScalaを使用してその利点を紹介し、他の開発者にもScalaの使用を検討するよう説得します。 休憩ベースのWebサーバーまたは一般的なプログラムの場合、どのようなコード構造がScalaの関数型プログラミングスタイルに適していますか。
8 scala 

6
Scalaライブラリの組み込みは遅いですか?
StackOverflowでこの質問を見つけ、回答を受け入れました。これは、標準のScalaライブラリの遅いJSONパーサーに関連しています。 現状のコンセンサスは、組み込みのJSONライブラリーが遅いことであり、DMCの言葉では「それはそのようなものであり、それが現状です」ということです。 たぶん、私はここで単純に働いているだけかもしれませんが、言語を成長させるための悪いアプローチのように思えます。べきではありませんビルトインライブラリは、完璧なもの?それらはすべての人にとってすべてである必要はありません。私はScalaが拡張可能であることを受け入れます。しかし、組み込みライブラリがあれば、確かにそれは確実で、言語が提供するのと同じくらい高速でなければなりません。 私はスターコマンドに苦情を申し立てています;-) 私のような普通の人がどこでどのようにしてこれについて私の意見を表明できるか、つまりScala言語を形作るためにどこに行くことができるかを誰かが知っていますか? 更新: この質問は、否定的な意味ではありませんでした。Scala、それはクリエーターであり、Scalaコミュニティーは非常に優れています。組み込みのJSONパーサーのようなものが最適とはほど遠いことに驚いた(提供されたリンクの質問によると)
8 scala 
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.