4
リストを与えれば、そのリストの最初のn
要素を返す単純な関数を作成しました。リストの操作
let rec first l n =
match l, n with
(_, 0) -> l
| (x::xs 1) -> [x]
| (x::xs n) -> x::(first xs (n-1))
しかし、入力がリストではなくリストのリストの場合はどうなりますか?私は、リストのリストを与えられた場合、最初にn
要素をリストから返す関数を作りたいと思います。たとえば :
first [[1; 2]; [5; 6; 7]; []; []; [9; 8; 0]] 1 =
[1; 5; 9]
私はパターンにリストのリストを作ることによって、アプローチを把握しようとした:
let rec first l n =
match l, n with
(_, 0) -> l
| ([[x]::[xs]], n) -> [x::[first xs (n-1)]]
それは動作しませんが、私はアプローチについてもっと心配です。それが正しいか?
あなたは何を達成しようとしていますか? –
申し訳ありません@FyodorSoikin、私は問題を指定するのを忘れました。今それは大丈夫でしょう。 – Worice
ここをクリックしてください:https://fsharpforfunandprofit.com/posts/elevated-world/ –