내가 (내가 조금 단순화)이 같은 패턴 매칭 건너 온 : 내가 마지막 경기가 머리를 인식하는지 이해 실질적으로이해 패턴은 "프로그래밍 F 번호"에서
let rec len list =
match list with
| [] -> 0
| [_] -> 1
| head :: tail -> 1 + len tail;;
및 꼬리표. 개념적으로, 나는 그것이 효과가있는 이유를 알지 못한다. 내가 이해하는 한, :: cons 연산자는 목록의 머리 위치에 값을 추가하지만, 여기서 연산자로 사용되는 것처럼 보이지 않습니다. 이것은 목록에 대한 "특수 구문"으로 이해해야합니까? ::는 문맥에 따라 연산자 또는 "일치 패턴"으로 해석됩니까? 또는 목록 이외의 다른 연산자에 대해서도 동일한 아이디어를 확장 할 수 있습니까?
고맙습니다. 당신의 요지에 대해서 : 특별한 구조를 갖추는 것이 정확히 내가 명확하지 않은 부분입니다. 나는 "같은"방법으로 패턴 매칭을하는 다른 연산자를 사용하려고 시도했지만,별로 의미가 없으며 어디에도 없습니다. 이것이 제가 단점에 대해 궁금해하는 이유입니다. – Mathias
튜플에 대해서도 마찬가지입니다. (() 패턴을 사용하여 튜플을 빌드하고 언 패킹 할 수 있으며 다른 유형 (Some()/None)도 가능합니다. – Benjol
다음은 [모두 지원되는 패턴 유형] (https://docs.microsoft.com/en-us/dotnet/articles/fsharp/language-reference/pattern-matching)을 참조하십시오. – JanDotNet