F#を使用すると、リテラルやその他のパターンでletバインディングを次のように使用できることに気づきました。
let fib 0 = 1
let exists item [] = false
let car (hd :: tl) = hd
let cdr (hd :: tl) = tl
F#は、次の警告を表示するため、これらの関数を一種のパターンマッチングとして正しく解釈します。
警告1この式のパターンが不完全です。たとえば、値「1」は一致しません
警告2この式のパターンが不完全です。たとえば、値'[_]'は一致しません
等
これらの関数は期待どおりに機能しますが、完全なパターンマッチングを使用してこのスタイルで関数を定義したいのですが、F#マニュアルでこの代替パターンマッチング構文について何も見つかりません。
使用let whatever = function ...しlet whatever x = match x with ...て希望の結果を得ることができることはわかっていますが、パターンマッチングのさらに別の構文を発見したばかりであり、使用方法がわからないと永遠に悩まされます。
上記の代替パターンマッチング構文を使用して関数を作成するにはどうすればよいですか?