Scala

Play2.0のIterateeを理解したい

Play2.0がついにリリースされました。早速ダウンロードしてかねてより興味のあったWebSocketで遊んでみようとしたところIteratee/Enumeratorなるものにぶち当たりました。 とりあえずソースを見てみるもののさっぱり理解できず、google先生に泣きついたとこ…

Scala Advent Calendar jp 2011: トレイトと自分型で簡単!コード分割

Scala Advent Calendar jp 2011の21日目の記事です。 最初に 『Scala実践プログラミング』に記載されていたCakeパターンの解説を読んで自分型の威力を思い知り、自分でも簡単な例で実践してみました。お題となる分割前のコードはこんな感じ。黒い四角がjkhl…

Scala Advent Calendar jp 2011: トレイトと自分型で簡単!コード分割

Scala Advent Calendar jp 2011の21日目の記事です。 最初に 『Scala実践プログラミング』に記載されていたCakeパターンの解説を読んで自分型の威力を思い知り、自分でも簡単な例で実践してみました。お題となる分割前のコードはこんな感じ。黒い四角がjkhl…

REPLの動作をREPLで

:powerモード使ってます。 scala> val code = "println(\"Hello, World\")" code: java.lang.String = println("Hello, World") scala> val Some(trees) = intp.parse(code) trees: List[intp.global.Tree] = List(println("Hello, World")) scala> val req …

Compiler Pluginを作ってみた

なにげなくScalaのコンパイラのソースを眺めていたときに見つけたコード // src/compiler/scala/tools/nsc/util/trace.scala object trace { def apply[T](msg: String)(value: T): T = { println(msg+value) value } // ... } なんてことないけど気の効いた…

ScalaからJNAでCライブラリ(libpafe)にアクセス

常日頃名古屋鉄道(名鉄)で通勤しているが、JRに遅れることはや数年、名古屋市営地下鉄とともについにIC乗車券(通称manaca)が導入された。 そして前回やっと解像度がまともに表示できるようになったと、喜びの報告をしたVAIO YにはPaSoRi(ICカードリーダ…

型クラスでHaskellのguardを定義してみる(未完)

@mzpさん主催の非公式名古屋Scalaに行ってきました。 前半は@yoshihiro503さんによるモナド講座。後半はCoq、F#、AmazonEC2、MessagePackなど「り、りろんはしってる」な話が飛び交ってました。モナド講座のなかでfor文のifはfilterが必要だったり、先頭に置…

Scala+Android小ネタ集

(この記事は Scala Advent Calendar jp 2010 の5日目です。)Scala+Androidで過去にはまったことなどを小ネタとして紹介します。 Androidに限らず、JavaのライブラリをScalaから使用する上でも役にたつかも。 java.lang.Classのインスタンスを取得する Scala…

名古屋Hackathon「ラムダ村」

先週土曜日(10/9) [twitter:@mzp]さん主催の名古屋Hackathon「ラムダ村」にいってきました。自分はScala組([twitter:@maeda_],[twitter:@a_hisame],[twitter:@RKTM],[twitter:@fumokmm],[twitter:@papamitra])に参加しました。 最近はプログラミングというと…

Scalaでモナド

前回(第11回)の名古屋scala勉強会の前半はfor式を肴にモナド三昧。『ふつうのHaskell』を発売直後*1に買ったものの途中で投げ出した自分はやっぱりチンプンカンプン。でもまぁチンプンカンプンなりにいろいろ教えてもらったので、それを頼りになんとかモナド…

Scalaの限定継続で四天王問題を解いてみた

Scalaの限定継続でSICP4章のambっぽいものを作って四天王問題(勝手に命名)を解いてみた。一応転載もしておく A「Dがやられたようだな…」B「ククク…奴は我ら四天王の中でも最弱…」C「私はBよりも弱い…」A「そして私は最強ではない…」B「四天王の中に私より…

Scalaの限定継続で四天王問題を解いてみた その2

ググってみるといろいろ派生問題が出来ているらしい(笑悪ノリしてその中の1つ、人力検索に出ているやつを解いてみた。 http://q.hatena.ne.jp/1284217294 A「Dがやられたようだな…」B「ククク奴は四天王でも最弱…」C「私はBよりも強い」A「私は最強ではない…

sbtでjavaコマンドから実行できるJAR作成

要はsbtで作ったjarファイルでこういうことがしたい $ java -cp ./hoge/fuga.jar org.example.HelloScala Hello,Scala!いろいろ試した結果、sbt-proguard-pluginを使用すれば可能だとわかった。sbt-proguard-pluginの使用方法は以下のページが詳しい。 sbtの…

ScalaのfjbgでHello,World

ScalaがBytecodeを作成するために使用しているfjbg(Fast Java Bytecode Generator)を使ってHello.classを作成してみた。 もちろん実行できる $ ./fjbg.scala $ java Hello Hello,World やってることはFJBGContextのJClassでHelloクラス作成。作成したクラス…

ensimeで補完生活

追記(2010/09/05): ensimeは開発&変化のスピードが早く、ここに掲載されている設定ファイルはすでに一部が無効になっています。正しい設定ファイルの書き方はマニュアルを参照してください。 最近話題になってるemacs上のScala開発環境「ensime」をAndroid…

C++のテンプレートは非変か

C++のテンプレートって非変なんですかね?ここでの議論がちょっと気になった。 上の記事のコメ欄で template <class T> class Hoge { public: Hoge() { } template<class U> Hoge(const Hoge<U>&) { } template<class U> Hoge& operator=(const Hoge<U>&) { return *this; } };こう書いてしま</u></class></u></class></class>…

Scala+Androidアプリ公開中

公開といってもマーケットではなくgithub上にScala+Androidのソースコードを公開しています。 sbt-android-plugin使用版(こっちが最新)http://github.com/papamitra/LocationAlarm2 ant使用版http://github.com/papamitra/LocationAlarm GPS等で目的地に近づ…

sbt-android-pluginで型安全にリソース取得

ネタ元はここ http://code.technically.us/post/824974287/rewiring-android-for-type-safe-layout-resourcessbt-android-pluginが0.5.0からTyped resources referencesという便利なものに対応したので紹介。 短く型安全なリソース取得 Scalaでボタンなどの…

sbtでScala+Android その2

前回に引き続きsbt+Android。いろいろ触ってみて困った点など3点ほど。 minSdkVersionがないとコンパイルエラー AndroidManifest.xmlにminSdkVersionがないと警告ではなく、なぜかいきなりjava.util.NoSuchElementExceptionが投げられるスパルタ仕様。 以下…

sbtでScala+Android

以前紹介したScala+Androidのスライドにあったsbt+Androidを試してみたけど、これは良い! セットアップは簡単だし、その上一度セットアップしてしまえば、あとは1コマンドでsbt+Androidなプロジェクトが作れてしまう。 ところでsbtって? sbt(simple-build…

Scala+AndroidでGoogle Mapsがコンパイルエラーになる(解決編?)

追記(2010/07/27): rev22630にて問題は修正されたようです。次期バージョン(2.8.1?)から下記現象は発生しないと思われます。 追記2(2010/10/03): Scala2.8.1.RC1でコンパイルし、問題が修正されていることを確認しました。前回もScala+AndroidでGoogle Maps…

Programming Android Application in Scala.

以前紹介したScalaMapの作者さんが、Scala+Androidのスライドを公開していたので転載。 まだ試してはいませんが、sbtのandroid-pluginなんかが実際の使用手順も交えて紹介されていてかなりよさげです。 どうやら台湾の方のようで、本文は中国語で正確な訳は…

scala2.8でビルドとかGoogle Mapsのこととか

scala2.8でビルドしようとしてはまったり、Google Maps使おうとしてはまったりした話。 いつもよりチラ裏分さらに多め。 scala2.8用scala-android.jar sbazでscala-androidをインストールしたら2.7系を入れられてしまった。そのままビルドしたらやはりエラー…

小技(findViewById編)

Buttonとかの要素をとってこようとするとこんな風に書かないといけない。 findViewById(R.id.button).asInstanceOf[Button] どうにも長いので暗黙の型変換を使ってみる。 class DollarAssoc[A

ScalaでAndroid用jar

ScalaでのAndroid開発用にヘルパライブラリを徐々に育てていこうかなと思ったが、Java素人の自分ははじめの一歩で大苦戦。とりあえず目的は達したので備忘録。 今回の参考サイト http://www.ibm.com/developerworks/jp/opensource/library/os-eclipse-scala/…

今度はScalaでHelloAndroid

ClojureでJVM上の言語に手を出したついでにコップ本も読んでみたところまんまとScalaにはまる。 というわけで前回に引き続き今回はScalaでAndroidアプリ作成にチャレンジ。 今回参考にしたサイト http://jijixi.azito.com/cgi-bin/diary/index.rb?date=20090…