2
2つのリスト('a list
と'b list
)が与えられた関数を作って、('a*'b) list
を返します。これは両方のリストのデカルト積です。 私はこれを試しましたが、代わりに'a list
、'b
に等しい'a list list
を取得します。 だから、誰かが私が間違っている場所と、OCamlが'a list list
の代わりに'a list
と尋ねる理由を教えてもらえるかどうか聞いています。デカルト積のタイプエラー
let lprod l1 l2 =
let rec aux lista la lb =
match la,lb with
[],_ -> lista
|ha::ta,[] -> aux lista ta l2
|ha::ta,hb::tb -> aux (ha,hb) la tb
in aux ([],[]) l1 l2;;
はい、私はこれらのアキュムレータをしたいが、どのように私はAUX INリストの代わりにタプルタプルのリストのために呼び出すことができます。ここでは、あなたの実装の修正バージョンですか? –
@JulioVillanueva動作している実装の更新された回答を参照してください – glennsl
これは完璧に近いです。それは私が望むものの逆を返します。 []、_ - > rev acc、私が必要なものを得る、ありがとう –