私はF#を学ぼうとしています。この学習の一環としていくつかの簡単な機能を作成しようとしています。リストを逆にして新しいアイテムを追加する
私は、リストに項目を追加して結果を元に戻す関数を作成しました。これは、Visual Studio
let addThenReverse n list =
match list with
| [] -> []
| _ -> n::list |> List.rev
addThenReverse 0 [1;2;3] //results in [3; 2; 1; 0]
にF#インタラクティブウィンドウで非常にうまく動作しますが、私は、リストを逆にそれに項目を追加する関数を書くと難しさを抱えています。
let reverseThenAdd n list =
match list with
| [] -> []
| _ -> List.rev list |> n::list
reverseThenAdd 9 [1;2;3] //desired result [3; 2; 1; 9]
EDIT ための望ましい結果は、上記でなければならない[9。 3; 2; 1]。これを見つけた人たちによくできました!
この第二の機能は、コンパイルされないと、私は「この式は型を持つことが期待された」警告リスト受け取る - >「bはリストのが、ここで入力している 『私がしようと、任意の変種が生じると思われる』
をCのリストをその他のコンパイルエラー。私は、List.rev listの結果として作成された新しいリストを、おそらく変数に代入して使用する必要があると仮定します(ただし、わかりません)。
確かに 'addThenReverse 0 []'の結果は '[0]'でなければなりませんか? –
@RobLyndon私は、単にリストを回して新しいアイテムを追加するよりも壮大な計画に着手しましたが、それがますます難しくなったので、私は熱狂を抑えて、私の視界を低くしなければなりませんでした。だからこそ、空リストのロジックがちょっと奇妙に見えます。あなたの答えとコメントに多くの感謝! –