17/02/23 22:17:35.80 kHt4tzR1.net
もいっちょRustのいいところ
foldの自然さ
// rust
let a = [1, 2, 3].iter().fold(100, |acc, x| acc + x); // 美しい
# ruby
a = [1, 2, 3].inject(100, :+) # 文句は無い
b = [1, 2, 3].inject(200) {|acc, x| acc + x} # 初期値とブロックを離して書くのが寂しい
(* OCaml *)
let a = List.fold_left (+) 100 [1; 2; 3];; (* 文句は無い *)
let b = List.fold_left (fun acc x -> acc + x) 200 [1; 2; 3];; (* funと->がやっぱり気になる *)