In my advanced compilers course, students have write to lexer-generators, parser-generators and Scheme interpreters with first-class macros. To make these projects feasible, I recommend using Scala. Of course, Scala is a large, intricate language. It takes time to even become aware of all its features. To help learn Scala faster, I've created the series of small examples below, each of which highl
Effective Scala Marius Eriksen, Twitter Inc. marius@twitter.com (@marius) Table of Contents Introduction Formatting: Whitespace, Naming, Imports, Braces, Pattern matching, Comments Types and Generics: Return type annotations, Variance, Type aliases, Implicits Collections: Hierarchy, Use, Style, Performance, Java Collections Concurrency: Futures, Collections Control structures: Recursion, Returns,
こんにちは初めましてー。2011年度新卒の田中です。 12月から急に寒くなってきましたね。 11月が暖かかったからといって油断していませんか? 私は完全に油断していました。まだ冬服を買っていません。 さて、まだ暖かかった11月、ドワンゴでScala勉強会という熱いイベントがありました。 私は最近Scalaを勉強し始めたのですが、この勉強会で、Scalaの魅力的な機能をたくさん知ることができました。 今回はScala勉強会から持ち帰った情報や今まで私が勉強してきたことを元に、Scalaのどこが魅力的なのかを記事をしていこうと思います。 それではよろしくお願いいたします。 対象読者 Javaを書いたことがある方 Scalaを知りたい方 Scalaを始めたばかりの方 Scala? ドワンゴはエンジニア同士の技術交流が盛んな会社で、プログラミング言語を中心に日々、情報交換、議論が行われています。
Other Languages: 한국어 Русский 简体中文 About Scala school started as a series of lectures at Twitter to prepare experienced engineers to be productive Scala programmers. Scala is a relatively new language, but draws on many familiar concepts. Thus, these lectures assumed the audience knew the concepts and showed how to use them in Scala. We found this an effective way of getting new engineers up to spe
型レベルプログラミング in Scala(Type-Level Programming in Scala)¶ この連載はScalaにおける型レベルプログラミングの紹介です。解説は、コードと例とすこしばかりの説明で成り立ちます。また、読者はScalaの一般的な型システムについての知識があることを前提にしています。これは著者の傲慢ではないので(もちろん読者のでもなく)、質問は歓迎します。 連載は10のパートから成ります。有るパートは他の記事の内容を含んで構成されることもあります。過去の記事はこの目次にリンクされますので、簡易なリファレンスとしてこのページをブックマークするとよいでしょう。
Javaな人から見ると、「Scalaって難しい」ってイメージがありますね。俺も最初はそう思ってました。今もですけど。 で、考えてみたんですが、何が難しいって考え方・イディオムになじみがないのが原因かと思ったんです。 ここでは、俺が今までScalaをやってきて得た考え方を紹介します。「Scalaをちょっとやってみたんだけど、とっつきにくくて…」と思われている方は、ぜひご一読ください。 参考資料: Scala入門 - Scalaで書きはじめたJava使い向け - Scala勉強会@東北 Dropbox - 404 神は言われた。「リストあれ。」 Lisperは、リストをどう作るかをまず考えるらしいです。適切なリストが出来たら、プログラムはもうできたも同然だと。同じ考え方は、Scalaでも通用すると思います。 大まかに、こんな流れで考えてます。(リストは最初から与えられることもあるでしょう) 「
まぁタイトルの通りなんですが(冷やし中華は終わってます)、RubyだったらrvmとかPythonだったらvirtualenvとか、使うバージョン切り替えられるヤツあんじゃないスカ? Scalaでもあったらいーなーと思ってシェルスクリプトで書きました。Scalaの場合は、依存ライブラリをランタイムのバージョン毎に切り替える必要はないので、単純にSCALA_HOMEを切り替えれば事足りるってー訳で。 ここに置いてあります。 yuroyoro/svm · GitHub この前trunkに入ったDynamic typeの調査をするはずが、何故かシェルスクリプトを書き始めていた……。何を言って(ry 概要 インストールされてるScalaのバージョンを切り替えたり、指定したバージョンをダウンロードしてきたりできます。 こいつを使えば、気軽にnightly buildを試したり、stableに戻ったり、
はてなグループの終了日を2020年1月31日(金)に決定しました 以下のエントリの通り、今年末を目処にはてなグループを終了予定である旨をお知らせしておりました。 2019年末を目処に、はてなグループの提供を終了する予定です - はてなグループ日記 このたび、正式に終了日を決定いたしましたので、以下の通りご確認ください。 終了日: 2020年1月31日(金) エクスポート希望申請期限:2020年1月31日(金) 終了日以降は、はてなグループの閲覧および投稿は行えません。日記のエクスポートが必要な方は以下の記事にしたがって手続きをしてください。 はてなグループに投稿された日記データのエクスポートについて - はてなグループ日記 ご利用のみなさまにはご迷惑をおかけいたしますが、どうぞよろしくお願いいたします。 2020-06-25 追記 はてなグループ日記のエクスポートデータは2020年2月28
(この記事は Scala Advent Calendar jp 2010 の5日目です。) Scala+Androidで過去にはまったことなどを小ネタとして紹介します。 Androidに限らず、JavaのライブラリをScalaから使用する上でも役にたつかも。 java.lang.Classのインスタンスを取得する ScalaではclassOfを使って取得できます。 Androidでは明示的Intentを作成するときなどに使います。 // Javaの場合 new android.content.Intent(this, HogeService.class) // Scalaの場合 new android.content.Intent(this, classOf[HogeService]) scalaの予約語とおなじ名前のメソッドがあってコンパイルエラーになる android.content.
追記(2010/09/05): ensimeは開発&変化のスピードが早く、ここに掲載されている設定ファイルはすでに一部が無効になっています。正しい設定ファイルの書き方はマニュアルを参照してください。 最近話題になってるemacs上のScala開発環境「ensime」をAndroidプロジェクトで試してみました。 どんな感じかっていうのは言葉よりも画像で見てもらったほうが早いでしょう。 補完してくれたり、 クラスの概要を表示したり、 コンパイルエラーの指摘なんかもしてくれます。 画像を見てもらってもわかるとおりandroidライブラリに対しても補完などが効きます。 インストール方法 http://aemon.com/file_dump/ensime_manual.html#tth_sEc2 事前にscala付属のscala-modeは設定しておいてください。 http://github.co
なぜ、いま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ページを開く