2016-09-19 13 views
0

ちょうどOcamlを拾い上げ、再帰的反復とすべてを調べています。私はタプルを反復しようとしていましたが、困惑しました。タプルを繰り返し処理し、各要素を半分に分割したいとしましょう。どのように処理するのですか?特に、タプルのサイズが分かっていないだけで変数として与えられている場合は?私はそれが2要素のタプルを知っていたならば今、私は私がこだわっているところだから、これはOcaml-タプルの繰り返し

let rec divide n = match with (a,b) -> ... 

を行うことができます。どのように議論と一致させるべきかを理解するにはどうすればよいですか?私はタプルが一度作成されて固定されているので、それを修正することはできませんので、オリジナルのタプル/ 2の要素を含む新しいタプルを作成するにはどうすればよいでしょうか。どんな助けもありがたい。

+4

私はOcamlについて100%確信していませんが、密接に関連する言語MLでは、任意のアリティのタプルに対して多態的なコードを書くことは、単に不可能です。これを見てください:http://stackoverflow.com/q/14416900/4996248 –

答えて

3

John Colemanが正解です。異なるサイズのタプルにポリモーフィックなOCamlコードを書く方法はありません。特定のサイズのタプルに対して動作するコードを書くことができます。与えられた型の任意の数の値に対して動作するコードを書くこともできます。そのため、タプルではなくリストを使用します。

ほとんどの場合、リストを使用してコードを動作させることができます。

関連する問題