map

http://jijixi.azito.com/cgi-bin/diary/index.rb?date=20070519#c01

自転車置場論的な(?)あまり意味のない情報提供↓をしてみる。

Petite Chez Scheme Version 6.0a
Copyright (c) 1998 Cadence Research Systems

> (map display '(1 2 3))
231(#<void> #<void> #<void>)
        Objective Caml version 3.09.0

# List.map print_int [1;2;3] ;;
123- : unit list = [(); (); ()]
# let rec mymap f = function [] -> []
  | a :: d -> f a :: mymap f d ;;
val mymap : ('a -> 'b) -> 'a list -> 'b list = <fun>
# mymap print_int [1;2;3] ;;
321- : unit list = [(); (); ()]

追記:少なくとも僕はOCamlで数万要素以上のリストとか普通に処理するので、tail-recursiveかどうかは重要だったりします。:-)