タプルの第2要素にのみ関数を適用したい
タプルの第2要素にのみ関数を適用したいことがよくあると思います。
Janestreet coreのTupleモジュールにはこれをやる関数が用意されています。
# Core.Tuple.T2.map2;; - : f:('a -> 'b) -> ('c, 'a) Core.Tuple.T2.t -> ('c, 'b) Core.Tuple.T2.t = <fun> # Core.Tuple.T2.map2 ~f:(fun x->x+1) (1,1);; - : (int, int) Core.Tuple.T2.t = (1, 2)
こんな関数あるわけないよなぁ、と思いつつ探してみたら、本当にあってびっくりした。第1要素にのみ適用するmap1や、3組用のT3もある。
Janestreetすげーな。