私はそれが 'リスト*'リストであることが望ましいと思います。なぜ私の機能は 'リスト*'リスト - > 'リストですか?
交点は二つのリスト サンプル入力と出力との交点を返すべきである:
- 交差点([1]、[1])。
- [1]
- 交差点([1,2,3]、[1,2])。
- [1,2]
- 交差点([2,3]、[1,2]、[2,3]、[1]、[2,3])。
- は、[[2,3]]
私の機能:
fun intersection (l1, l2) = let
fun intersection_acc (acc, [], h::t) = []
| intersection_acc (acc, h::t, []) = []
| intersection_acc (acc, h::t, h2::t2) = if in_list (h, l2)
then intersection_acc (h::acc, t, l2)
else intersection_acc (acc, t, l2)
in intersection_acc ([], l1, l2)
end
私は問題であるin_listとは思わないが、それは次のようになります。
fun in_list (x, []) = false
| in_list (x, y::r) = if x = y
then true
else in_list (x, r);
なぜあなたはこのタグを付けましたmatlabとして?これは明らかにいくつかのMLの変形ではなく、MATLABです。私はSMLを推測していますか? – sepp2k
申し訳ありませんが、私は違いがあったことを認識していませんでした。これはSMLNJだと思います。 – Nate
@Nate:MLはmatlabとは関係ありません。 MLは関数型言語であり、MatLabは必須です。 –