Skip to content

Instantly share code, notes, and snippets.

package org.example
import org.apache.log4j.Logger
object Log4jproject extends App {
val logger: Logger = Logger.getLogger(this.getClass.getName)
logger.info("log4j test")
}
@gkojax
gkojax / 1.scala
Created October 30, 2012 08:30
フィボナッチを書いたんだけどprintlnの位置が気に入らない
val op: Pair[BigInt, BigInt] = Pair(1, 1)
(0 until 10).foldLeft(op) { (ab, x) =>
println(ab._1)
Pair[BigInt, BigInt](ab._2, ab._2 + ab._1)
}
@gkojax
gkojax / 1.scala
Created October 10, 2012 09:46
引数のうち数値のものだけ抽出してソートして標準出力する。
import scala.util.control.Exception._
object Main {
def main(args : Array[String]) : Unit = {
args.toList.filter(allCatch either _.toInt isRight).sorted.foreach(println)
}
}
// 数値かどうかをチェックするのに、toInt関数を呼んで例外が発生するかどうかでチェックするとか
// 良いやりかたでは無いと思います。
@gkojax
gkojax / a.scala
Created August 23, 2012 11:58
2.10.0-M7でマクロを使うのにlibraryDependenciesの追加が必要だった
import sbt._
import sbt.Keys._
object Scala210Build extends Build {
lazy val scala210 = Project(
id = "scala-210",
base = file("."),
settings = Project.defaultSettings ++ Seq(
name := "Scala 210",
@gkojax
gkojax / 1.scala
Created August 5, 2012 08:37
Dateに対するOrderのインスタンス無くても動くらしい
import scalaz._, Scalaz._
import java.util.Date
case class Student(name: String, grade: Int, birthday: Date)
object Student {
implicit object StudentInstance extends Show[Student] with Order[Student] {
def show(s: Student) = s.toString.toList
def order(s1: Student, s2: Student) =
s1.grade ?|? s2.grade |+| s1.birthday ?|? s2.birthday
}
@gkojax
gkojax / aaa.scala
Created July 23, 2012 03:28
case文とtry catchがネストしてるの
def string2Int(sizeString: Option[String]): Option[Int] = {
sizeString match {
case Some(a) =>
try {
val size = a.toInt
Option(size)
} catch {
case _ =>
None
}
@gkojax
gkojax / aaa.scala
Created July 20, 2012 08:30
specs2の枠だけ
import org.specs2.mutable._
import org.specs2.specification._
import org.mockito.Mockito._
import com.mongodb.casbah.Imports._
import com.twitter.finagle.http._
import com.twitter.finagle.http.path._
import com.twitter.finagle.{ Service, Filter, SimpleFilter }
import com.twitter.util.{ Future, FuturePool, Eval }
import scala.util.control.Exception._
import com.twitter.sbt._
organization := "com.example"
name := "Finagle Http Project"
version := "0.1.0"
scalaVersion := "2.9.2"
@gkojax
gkojax / 1.scala
Created July 11, 2012 14:21
メソッドの末尾に _ を付けると関数オブジェクトになる。
val addUmm: String => String = _ + " umm"
val addAhem: String => String = _ + " ahem"
val ummThenAhem = addAhem.compose(addUmm)
def addUmm2(x: String) = x + " umm"
def addAhem2(x: String) = x + " ahem"
val ummThenAhem2 = (addAhem2 _).compose(addUmm2 _)
@gkojax
gkojax / 1.scala
Created July 8, 2012 01:47
ランダムな数値のリスト
List(Random.nextInt(size), Random.nextInt(size), Random.nextInt(size))
// はもうちょっとかっこよくかける気がする。