Concurrent Clean : 不足しているプリミティブ

Cleanを使っていて、いくつかプリミティブが不足していると思う。なくても同じことを行う関数は書けるのだが、効率性を考えるとプリミティブとして欲しいという種類のものだ。
たとえば、配列のコピー。Cleanでは配列は破壊的更新ができるので、効率的にコピーしたいということがありえるのだが、それをサポートするプリミティブはない。
配列の内包表記を使って次のように書くことはできるが、これは十分に効率的ではない。

{a \\ a <-: arr}

文字列の場合に限れば、次のように書くことができ、これは十分に効率的だ。

str%(0,size str - 1)

ただ、これは明らかにバッドノウハウの類だ。
しかし、この書き方で書けるということが分かっているので、このプリミティブの実装を参考に、配列コピーのプリミティブを作ることはできるはず。

      • -

続く・・・かも