Help us understand the problem. What are the problem?

Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? AndroidもScalaで書きたい!という衝動に身を任せ、パズルゲームを作ってみました。 公開中のゲームはこちらです。 4方向にフィールドのあるパズルゲームです。ブロックを積んで消していく風のやつですね。 コア部分のコードはこちらです。 これまで、ブラウザで動くscala-js版や、ターミナル上で動くscala-native版を作っていたのですが、満を持してAndroid版に挑戦した次第です。 今回は、とりあえずリリースまで出来たということで、セットアップやScalaで書く上での実装方針など、軽く触れたいと思います。 モチベーション
ヌーラボの松浦です。私がSREのエンジニアリングマネージャーとしてプロジェクトのサポートに携わっているプロジェクト管理ツールのBacklogは、2019年7月にJavaからScala / Play Frameworkに完全移行をしました。 このPlay化プロジェクトは、10年がかりで改良され仕様が明文化されていなかったBacklogを、JavaからScala / Play Frameworkに移行するという壮大なプロジェクトでした。 約4年にわたる「Backlog Playプロジェクト」(以下、Play化プロジェクト) で体験した“紆余曲折”を記録に残し、後のプロジェクトにつなげるために、今回から7回に渡って、技術的な挑戦やプロジェクト管理の視点など、当時のチームメンバーが独自の目線でPlay化プロジェクトを振り返った記事を連載します。 連載第1回目の本記事では、序章としてPlay化プロジ
はじめに ここ数年で、Kotlinは急速な勢いで台頭してきており、Androidでは(おそらく)既に支配的な言語になっているかと思います。サーバーサイドKotlinはまだまだこれからというところがあるように感じますが、今後の発展次第でシェアを伸ばす可能性が高いでしょう。この記事では、そんなKotlinとScalaの関係について説明したいと思います。 結論からいうと、KotlinはScalaの直系の子孫であり、ScalaはKotlinの親であるといって差し支えないくらいKotlinがScalaから受けた影響は深いです。このことについて、私はパクリだとかそういうつもりは一切ありません(元々、プログラミング言語の発展というのは、色々な言語からアイデアを集めてきてこそですし)。しかし、最近、Kotlinについて、GroovyとScalaのいいとこどりであるとか(そのくらいにしか影響がないという意味
Scala By Example の和訳 第 1 章 はじめに 第 2 章 最初の例 第 3 章 アクターとメッセージによるプログラミング 第 4 章 式と簡単な関数 第 5 章 第一級の関数 第 6 章 クラスとオブジェクト 第 7 章 ケースクラスとパターンマッチング 第 8 章 ジェネリックな型とメソッド 第 9 章 リスト 第 10 章 For内包表記 第 11 章 ミュータブルな状態 第 12 章 ストリームによる計算 第 13 章 イテレータ 第 14 章 遅延評価val 第 15 章 暗黙の引数と変換 第 16 章 Hindley/Milner 型推論 第 17 章 並列処理の抽象 和訳 PDFはここです reStructuredTextで書きました。ソースや作り方は PDF最後のページに添付ファイル(UTF-8 BOMなしテキスト)として埋め込んであります。 第 1 章 は
どう書く?orgでScalaを書いてくれる人もでてきたので、超一部の方向けにScalaのことでも書いてみようと思います。言うなれば、基礎を終えた人のScalaミニtips。知っている人は知っている、でもあまり知られていないことを並べていきます。 下に行くほどマニア度あがります、たぶん。FPよりの話が多いかもしれません。はやりのYコンビネータの話とか。たぶん。 ではいってみましょう。 Predefされているものは把握しておきましょう Scalaにはscala.Predefというオブジェクトがあります。この中で定義されているものは常にインポートされていて使える状態になっているので把握しておきましょう。 例: 1def exit(status: Int): Nothing = { 2 java.lang.System.exit(status) 3 throw new Throwable() 4}
Effective Scala Marius Eriksen, Twitter Inc. marius@twitter.com (@marius) [translated by Yuta Okamoto(@okapies) and Satoshi Kobayashi(@scova0731)] Table of Contents 序章 書式: ホワイトスペース, 命名, インポート, 中カッコ, パターンマッチ, コメント 型とジェネリクス: 戻り型アノテーション, 変位, 型エイリアス, 暗黙 コレクション: 階層, 使う, スタイル, 性能, Java コレクション 並行性: Future, コレクション 制御構造: 再帰, Return, forループと内包, require と assert 関数型プログラミング: 代数的データ型としてのケースクラス, Option, パターンマッチ
前書き Scalaという言語をご存知ですか? Javaと同じくコンパイルされるとclassファイルになり、実行時はJVM上で動作する、オブジェクト指向+関数型のプログラミング言語です。 Scalaを開発したのはJavaのgenericsの設計を手がけたり、javacの開発をしていた経歴も持つMartin Odersky氏。 Scalaは後発の言語ということもあって、Javaを書いている時に感じる冗長さに対する様々な解が用意されています。 本記事では、ScalaとJavaのコードを比較しながら、JavaユーザがScalaに移った際に得られるメリットを提示していきます。 尚、序盤のサンプルコードはJavaユーザに伝わりやすいように、returnを明記したり、メソッドは必ず{ }で囲むなど、極力Javaっぽい記述をしています。 だいたいJavaと同じような書き方ができます ScalaはJavaの
Java変態文法最速マスターなんてのがかなりブクマされてるみたいだが、変態さならJavaなんてScalaの足元にも及ばないぜ!!ということで、Scala版を書いてみました。しかし、実はあまり変態ではないかもしれません。元ネタと違って、これを読めば何かがわかる、という意味の実用性はあまり無いでしょう。 implicit conversion編 基本 Scalaのimplicit conversionは使いようによってはScalaの強力な型システムを台無しにしてしまう力を持っています。たとえば、 implicit def string2int(x: String): Int = Integer.parseInt(x) というimplicit conversionを定義してやると、"300" / 3が100になるなどというキモい挙動を実現することができます。また、さらにカスタマイズして、16進数
Scalaのプログラムは,かなりそのままJavaのクラスファイルとなるので,Google App EngineのサーブレットをScalaで書けるんじゃないかと思っていたが,やってみたら,すごく簡単に書けた. 方法は,こちらのサイトを参考.Eclipseのプラグインを使う. 準備 下記の手順で環境をセットアップする. Google App Engine のプラグインをEclipseに導入する. ScalaのプラグインをEclipseに導入する.方法は,こちら. App Engineのプロジェクトを作成する. パッケージエクスプローラのプロジェクト名上で,右クリックでコンテクストメニューを出し,Scala-> Add Scala Natureを選択.これによって,作成したプロジェクトでScalaが使えるようになる. ここまでで,App Engine開発サーバでScalaが実行できるようになる.
なぜ、いまScalaなのか? TwitterがScalaを利用しているのは有名ですが、他にも位置情報を利用したfoursquareはScalaで構築されたLiftというWebフレームワークを利用していますし、GTDツールとして有名なRemember The MilkもScalaの利用を検討しているようです。 Scalaは、Java Virtual Machine(以下JVM)上で動くオブジェクト指向+関数型言語です。簡潔で柔軟な記述が可能であり、マルチコアを意識したライブラリがあり、JVMでのスケールメリットを享受できることが、これらの企業で採用に踏み切った理由であると考えられます。 Scalaは、非常にバランスの取れたプログラミング言語です。本連載では、Scalaの基本的な文法を解説しながら、オブジェクト指向と関数型言語を組み合わせたプログラミングスタイルについて、解説したいと思います。
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く