2009-01-01から1年間の記事一覧

[Scala] (Stream.constとforをつかった)あついイディオム

via @tanigon このイディオム? 熱いわ for(i <- Stream.const(()=>in.read(buf)).map(_()).takeWhile(_ != -1))... を受けて、ちょっと実験してみた。ようは、InputStreamなどから、ある条件になるまで読み込んで何かする時のイディオム。 ただ、最初に全部…

Type alias すげぇ

via Scala言語仕様輪読会 scala> type of[m[_],t] = m[t] defined type alias ofとすると、 scala> var x: List of Int = List(1,2,3) x: of[List,Int] = List(1, 2, 3)とか出来る模様・・・!! なんかすげぇ!!これは、結局 scala> var x: of[List,Int] =…

object を継承して作る

時に、 class Human(val name:String) { def hello = "Hi! I'm " + name + "." } object Taro extends Human("Taro") object Hanako extends Human("Hanako") println(Taro.hello) println(Hanako.hello)とかできるのね。なんとなく書いてみたらできたのでび…

TimeのRange#stepを使うときのTIPS

たとえば、ある日「X」からある日「Y」まで、一日ごとの日付の入った配列を作りたいとき。単純に (stdate..eddate).step(3600*24).to_a.map{|t| t.strftime('%Y/%m/%d')}とすると、すごく遅い。そこで、 (stdate.to_i)..(eddate.to_i)).step(3600*24).to_a.m…

可変長引数の取り扱い

単純に scala> def sprintf(fmt:String, args:Any*) = String.format(fmt, args) sprintf: (String,Any*)java.lang.Stringだと scala> sprintf("%d,%d", 1,2) java.util.IllegalFormatConversionException: d != scala.runtime.BoxedObjectArray at java.uti…

Ruby の OptionParser ライクな Commons-CLI のラッパを書いてみた

定番コマンドライン引数解析ライブラリ Commons-CLI(ver1.2)を使ってみた import org.apache.commons.cli._ class NoSuchConfigFileException extends RuntimeException var testMode = false var configFilename:String = null var exAttachFiles = Array[S…

JavaMailのラッパを書いてみた。

ひとまず object Mail { import java.util._ import java.io._ import javax.mail._ import javax.mail.internet._ import javax.activation._ def body(text:String) = new MimeBodyPart { setText(text , "iso-2022-jp") } def attachFile(filename:String…

iPodTouch買いました。

ってことで、記念の書きこみ。 (^^