CLOVER🍀

That was when it all began.

2012-04-01から1ヶ月間の記事一覧

Scalaで正規表現

今まであまり触れてこなかったので、メモを兼ねて試してみることにしました。 普通にメソッド呼び出し val targetString = "Hello 1234 World 5678" val numberPattern = """\d+""".r val alphaPattern = """[a-zA-Z]+""".r // Regex#findFirstIn => Option[…

Ubuntu 12.04 LTSにOracle JDK7をインストールする

昨日、うちで使っているUbuntu Linuxを12.04にアップグレードしたのですが、それでもソフトウェアセンターにJDK7が入っていないので、手動でもインストールすることにしました。参考にしたのは、このサイトです。 http://www.webupd8.org/2012/01/install-or…

Nettyで簡易HTTPサーバを書く

久しぶりにNettyネタです。まあ、今回は写経ものですが。ところで、今年の1月頃にNettyを触っていた時はバージョン3.3.0.Finalだったのですが、今はすでにバージョン3.4.2.Finalとなっています。上がるの早いなぁ…。んで、今回はHTTPサーバを書いてみたいと…

Groovy、Clojureでもっと関数合成(オマケでScala)

珍しくトラックバックなどいただいたので、もうちょっとこのネタを書いてみることにしました。関数合成して何が嬉しいのか…ですが、前の例みたいな足し算、掛け算なんか書いても、確かにあんまりまあ現実味ないですからねぇ。それに、こういう単純なメソッド…

Clojureで特定のパッケージ配下のクラスを検索する

なんとなく始めてみた、同じテーマでのリライトシリーズ第3弾、最後はClojureです。Javaから始めてScala、Groovyと続きましたが、Clojureが1番苦労しました…。イミュータブルなデータ構造を基本にプログラミングすることに慣れていないということを、嫌とい…

Groovyで特定のパッケージ配下のクラスを検索する

以前、JavaとScalaで同じようなタイトルのエントリを書いたことがありましたが、これには元ネタがあって、そちらは実はGroovyだったりします。元々、仕事でクラスをディレクツリーを辿って動的に走査して、見つかったクラスの継承関係やらアノテーション付与…

Groovy、Scala、Clojureで関数合成

あまり使ったことがないので、メモを兼ねて試してみます。 Groovy Groovyの場合は、Closureクラスのインスタンスを合成します。使用するメソッドは、leftShift(>)です。 def add2 = { x -> x + 2 } def multiply3 = { x -> x * 3 } def multiply3AndAdd2 =…

Clojure 1.3.0インストール

久々に、Clojureを触ってみたくなりまして。1.1、1.2の頃は触っていたのですが、このところ全然だったので、Clojure 1.3.0をインストールすることにしました。とりあえずスクリプト的に使うことをメインにするので、Leiningenはいったん置いておきます。まず…

superキーワードで、呼び出す継承元クラスまたはMix-inしたトレイトを指定する

ちょっとしたことから、Scalaのscala.collection.MapLikeのソースを見ていたのですが、こんな記述があるのを見つけました。 // Source from Scala 2.9.2 ... package scala.collection import generic._ import mutable.{ Builder, MapBuilder } import anno…

Emacsでのファイルの再読み込み・文字コード指定関連のTips

これまた、覚えられないキーの方々。 Emacsでカレントバッファのファイルを再読み込みする キー 意味 C-x C-v カレントバッファを別のファイルで置き換える(=そのまま同じファイルを開くと、再読み込み) M-x revert-buffer カレントバッファを捨てて、フ…

Emacsで矩形編集を行う

全然キーが覚えられない、矩形編集です。まずは、標準のキー操作で。矩形選択の最初は、通常のマーク付け(C-Space)で開始します。 キー 意味 C-x r t 矩形の先頭に文字を挿入 C-x r d 矩形領域を削除 C-x r k 矩形領域を削除して、キルリングに追加 C-x r …

Emacsのバッファ・ウィンドウ操作の基本を覚える

続いて、バッファ操作の基本をまとめておきます。バッファ一覧はよく使っていますが、バッファの選択しか使ってなかったので…。まずは、カレントバッファ上で作業する場合。 キー 意味 C-x b バッファを名前を指定して切り替える(デフォルトは、ひとつ前に…

Diredの基本操作を覚える

Emacsを使っている、使っているとは言いつつも、これまであまり大して使いこなせていなかったと思います。ホント、ちょっと便利なエディタ程度な使い方をしてますね。最近、こんな本を買って読んでみて、これならちょっとずつ進めそうな感じがしてきたので頑…

IntelliJ 11でfscを使う

以前に、IntelliJでfscとsbtの設定方法をまとめたことがありましたが、ちょっと前にリリースされたIntelliJ 11の新機能に以下のような記載がありました。 Fast Scala Compiler support (FSC) http://www.jetbrains.com/idea/whatsnew/index.html はて?前もf…

Scalaのfor式で扱えるクラスを書いてみる

ちょっと前に、Continuationモナドの勉強ってことでファイル入出力の例を写経しつつ、自分でも少し書いてみました。今度は、for式に使えるクラスを自分で書けるようになることも目的にしつつ、もうちょっと実装難易度を下げてfor式で入出力を扱えるようなプ…

Python実行時のバイトコードコンパイル(.pycファイル)の生成を抑止する

例えば、以下のようなモジュールをimportするPythonスクリプトがあったとして… #!/usr/bin/python # -*- coding: utf-8 -*- import hoge print 'Hello World!' インポートされる側。 #!/usr/bin/python # -*- coding: utf-8 -*- print 'hoge' これを実行する…

Pythonでカリー化を書いてみる

なんとなく、書いてみたくなったので。カリー化というのは、複数の引数を取る関数を、最初の引数のみ与えると残りの引数を取る関数に変換すること…です。なんか、書くより例を見た方が早いので…。例えば、こういう関数があったとして… def add(x, y): return…