25. Java
public class Sum {
public static void main(String[] args) {
int start = Integer.parseInt(args[0]);
int end = Integer.parseInt(args[1]);
int sum = 0;
for (int num = start; num <= end; num++)
sum += num;
System.out.println(sum);
}
}
12年12月27日木曜日
26. Scala
object Sum {
def main(args: Array[String]) {
val start = args(0).toInt
val end = args(1).toInt
var sum = 0
for (num <- start to end)
sum += num
println(sum)
}
}
12年12月27日木曜日
27. Scala
シングルトンクラス
object Sum {
def main(args: Array[String]) {
val start = args(0).toInt
val end = args(1).toInt
var sum = 0
for (num <- start to end)
sum += num
コレクション(Range)
println(sum)
}
}
12年12月27日木曜日
31. var sum = 0
for (num <- start to end)
sum += num
def add(x:Int, y:Int) : Int = {x + y}
val sum = (start to end).foldLeft(0)(add)
初期値
リストの各要素に対して
※引数が分割されている 行う処理
12年12月27日木曜日
32. def add(x:Int, y:Int) : Int = {x + y}
val sum = (start to end).foldLeft(0)(add)
戻り値の型省略 1行なので
中括弧省略
def add(x:Int, y:Int) = x + y
val sum = (start to end).foldLeft(0)(add)
・等号を省略すると戻り値無しとみなされる
・戻り値型の省略はほどほどに (分かりにくくなるかも)
12年12月27日木曜日
33. def add(x:Int, y:Int) = x + y
val sum = (start to end).foldLeft(0)(add)
無名関数
val sum = (start to end).foldLeft(0)((x, y) => x + y)
12年12月27日木曜日
34. val sum = (start to end).foldLeft(0)((x, y) => x + y)
プレースホルダー
val sum = (start to end).foldLeft(0)(_+_)
※引数が1回しか使われない場合のみ
12年12月27日木曜日
35. val sum = (start to end).foldLeft(0)(_+_)
foldLeftの別名
val sum = (start to end)./:(0)(_+_)
12年12月27日木曜日
36. val sum = (start to end)./:(0)(_+_)
val sum = (0 /: (start to end)) (_+_)
演算子記法
12年12月27日木曜日
38. Scala(最終版)
object Sum {
def main(args: Array[String]) {
println((0 /: (args(0).toInt to args(1).toInt)) (_+_))
}
}
追記:ここまでやると可読性が下がるので、
程々のところで止めておくのがよいとのことです。
というか、リストの合計を出すsum関数があるので、実際は
(args(0).toInt to args(1).toInt).sum
でOK!
12年12月27日木曜日
39. Before After
public class Sum { object Sum {
public static void main(String[] args) { def main(args: Array[String]) {
int start = Integer.parseInt(args[0]); println((0 /: (args(0).toInt to args(1).toInt)) (_+_))
int end = Integer.parseInt(args[1]); }
}
int sum = 0;
for (int num = start; num <= end; num++)
sum += num;
System.out.println(sum);
}
}
12年12月27日木曜日
40. Before After
public class Sum { object Sum {
public static void main(String[] args) { def main(args: Array[String]) {
int start = Integer.parseInt(args[0]); println((0 /: (args(0).toInt to args(1).toInt)) (_+_))
int end = Integer.parseInt(args[1]); }
}
int sum = 0;
for (int num = start; num <= end; num++)
sum += num;
System.out.println(sum);
}
}
/ ドヤァ...\
12年12月27日木曜日
43. 慣れないうちはこの書き方でも
良いと思います
object Sum {
def main(args: Array[String]) {
val start = args(0).toInt
val end = args(1).toInt
var sum = 0
for (num <- start to end)
sum += num
println(sum)
}
}
12年12月27日木曜日