関数と配列
ちょwwwおまwww
id:nuc:20060121:p2
そうなると、配列を破壊的代入可能な関数とみなすのか・・・?とりあえず、関数の引数が0からn-1という制限があるので、例えばこんな感じの関数を宣言することになるのだろうか。
# exception ArrayIndexException;; exception ArrayIndexException # let array n func = fun m -> if (m < 0 || n <= m) then raise ArrayIndexException else func m;; val array : int -> (int -> 'a) -> int -> 'a = <fun> # let array1 = array 10 (fun n -> n);; val array1 : int -> int = <fun> # array1 10;; Exception: ArrayIndexException. # array1 4;; - : int = 4
どうでもいいですか、そうですか。
追記:逆に、intを引数とする関数は全て配列で実装と言う考え方も出来る。その方針で計算するほうが時間オーダーを削れると言う可能性も否定できない。実際にPKUではそういう問題もある。