私は Ocaml を初めて使用し、ネストされたリストを次のように定義しました。
type 'a node = Empty | One of 'a | Many of 'a node list
ここで、ネストされたリストの最初の順序のメンバーを角括弧で囲むラッピング関数を定義したいと考えています。例のために。wrap( Many [ one a; Many[ c; d]; one b; one e;] ) は Many [Many[one a;] を返します。空の]; 多くの[多くの[c;d]; 空の]; 多く[b; 空の]; 多く[e; 空の]]。これが私のコードです:
let rec wrap list = function
Empty -> []
| Many[x; y] -> Many [ Many[x; Empty]; wrap y;];;
しかし、最後の式でエラーが発生しました: この式にはタイプ 'a ノードがありますが、タイプ 'b リストの式が予期されていました。助けてください。