Skip to content

Instantly share code, notes, and snippets.

View seratch's full-sized avatar

Kazuhiro Sera seratch

View GitHub Profile
@seratch
seratch / gist:1297691
Created October 19, 2011 07:40
#daimonscala 19-2 "Apache access_log(combined) parser" Blank
object Main {
import java.net._
import java.util.Date
case class Access(
ipAddress: InetAddress,
ident: String,
user: String,
time: Date,
@seratch
seratch / gist:1297974
Created October 19, 2011 10:58
#daimonscala 19-1 "JSON parser"
// obj ::= "{" [members] "}".
// arr ::= "[" [values] "]".
// value ::= obj | arr | stringLiteral | floatingPointNumber | "null" | "true" | "false".
// values ::= value { "," value }.
// members ::= member { "," member }.
// member ::= stringLiteral ":" value.
object Main {
import util.parsing.combinator._
@seratch
seratch / gist:1298039
Created October 19, 2011 11:36
#daimonscala 19-2 "Apache access_log(combined) parser"
object Main {
import java.net._
import java.util.Date
case class Access(
ipAddress: InetAddress,
ident: String,
user: String,
time: Date,
@seratch
seratch / gist:1313140
Created October 25, 2011 15:29
unfiltered snippets #daimonscala 20
import unfiltered.request._
import unfiltered.response._
// Planify使ってpartial functionでintentの中だけ書く
val echo = unfiltered.filter.Planify {
case Path(Seg(p :: Nil)) => ResponseString(p)
}
unfiltered.jetty.Http.anylocal.filter(echo).run()
// Planを継承したobjectを作ってintentを定義する
@seratch
seratch / gist:1351337
Created November 9, 2011 12:52
Example1.java #daimonscala 21
public class Example1 {
public static class Person {
public static final String DEFAULT_NAME = "anonymous";
private String name = DEFAULT_NAME;
public Person() {
}
@seratch
seratch / gist:1351338
Created November 9, 2011 12:52
example1.scala #daimonscala 21
object Person {
val DEFAULT_NAME = "anonymous"
}
class Person(var name: String) {
def this() {
this(Person.DEFAULT_NAME)
}
def canWriteCode = false
}
@seratch
seratch / gist:1351345
Created November 9, 2011 12:57
Example2.java #daimonscala 21
import java.util.Arrays;
import java.util.Comparator;
public class Example2 {
public static void main(String[] args) {
Integer[] arr = new Integer[]{1, 5, 3, 2, 4};
Arrays.sort(arr, new Comparator<Integer>() {
@seratch
seratch / gist:1351348
Created November 9, 2011 12:57
example2.scala #daimonscala 21
val arr = Array(1,5,3,2,4)
val res = arr.sortWith { (i1,i2) => i1 < i2 }
res foreach println
val compare = (i1:Int, i2:Int) => i1 < i2
val res = arr.sortWith(compare)
def compare(i1:Int, i2:Int) = i1 < i2
val res = arr sortWith compare _
@seratch
seratch / gist:1351382
Created November 9, 2011 13:12
traits.scala #daimonscala 21
type HasName = { def name: String }
trait CanSpeak { this: HasName =>
def introduce = println("Hi, I'm " + name + ".")
}
trait CanRun { this: HasName =>
def run = println(name + " start running!")
}
@seratch
seratch / gist:1369078
Created November 16, 2011 02:23
#daimonscala 22 ハンズオン
// -----------------
// #daimonscala 22 ハンズオン
// -----------------
// 1. ListからMapをつくろう
val list = List("Scala", "http://scala-lang.org", "Java", "http://java.net/", "Haskell", "http://haskell.org/")
// Map(Scala -> http://scala-lang.org, Java -> http://java.net/, Haskell -> http://haskell.org/)