Erlang : 配列
http://d.hatena.ne.jp/n_shuyo/20070521/erlang
別に、インデックスを再帰でインクリメントしながら各要素に処理を行うのは、普通の処理ですよ。少なくともCleanでは。
Erlangでも、こういう風に書けますよね。
-module(array). -export([each/2]). each(F,Arr) -> each(F,Arr,1,size(Arr)). each(F,Arr,I,E) -> if I>E -> ok; true -> F(element(I,Arr)), each(F,Arr,I+1,E) end.
ただ、Erlangの場合は、タプルに対して破壊的な操作ができないので、あまり配列らしい使い方はしにくいと思いますが。それは、他の破壊的な操作を認めていない言語でも、同様かと。(OCamlは配列は破壊的ですよね。Cleanは特殊な方法で破壊的に扱います。Haskellは知りません)
ある程度大きな読み取り専用のデータに対して、インデックスでランダムアクセスしたいときなどには、配列の代わりにタプルやバイナリを使うことになるのではないかと思います。