Comment detail

n日後を返す関数を返す関数 (Nested Flatten)
ScalaではFunction.curriedでカリー化できます。
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
import java.util.Calendar
import java.text.SimpleDateFormat

def n_days_later(n:int, c:Calendar) = {
  c.add(Calendar.DATE, n)
  c
}

val five_days_later = Function.curried(&n_days_later)(5)
val now = Calendar.getInstance

val formatter = new SimpleDateFormat("EEE, d MMM yyyy HH:mm:ss Z")
println(formatter.format(five_days_later(now).getTime))
お題どおりn_days_laterの引数を1にするとこうかな。
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
import java.util.Calendar
import java.text.SimpleDateFormat

def n_days_later(n:int) = {
  (c:Calendar) => {
    val r = c.clone.asInstanceOf[Calendar]
    r.add(Calendar.DATE, n)
    r
  }
}

val five_days_later = n_days_later(5)
val now = Calendar.getInstance

val formatter = new SimpleDateFormat("EEE, d MMM yyyy HH:mm:ss Z")
println(formatter.format(five_days_later(now).getTime))

Index

Feed

Other

Link

Pathtraq

loading...