검색 여닫기
검색
메뉴 여닫기
518
228
4
2천
noriwiki
둘러보기
대문
최근 바뀜
임의의 문서로
미디어위키 도움말
특수 문서 목록
파일 올리기
환경 설정 메뉴 여닫기
notifications
개인 메뉴 여닫기
로그인하지 않음
지금 편집한다면 당신의 IP 주소가 공개될 수 있습니다.
user-interface-preferences
한국어
개인 도구
로그인
Pattern matching 문서 원본 보기
noriwiki
문서 공유하기
다른 명령
←
Pattern matching
문서 편집 권한이 없습니다. 다음 이유를 확인해주세요:
요청한 명령은 다음 권한을 가진 사용자에게 제한됩니다:
사용자
.
문서의 원본을 보거나 복사할 수 있습니다.
[[분류: 프로그래밍 언어]] == 개요 == 패턴 매칭은 일련의 토큰들이 특정 패턴에 포함되는지를 판단하는 구문을 말한다. 패턴매칭은 Modern programming langauge에서 많이 사용되며, 특히 [[함수형 언어]]혹은 함수형 언어의 특징을 포함하는 언어들에서 많이 사용된다. 이러한 예시로는 [[Rust]], [[C#]], [[Scala]]와 같은 언어들이 있다. * sequence matching: 주어진 일련의 토큰들에서 구문의 위치를 파악하는 것이다. (e.g. where is the first "a" in "pattern_matching"?) * tree matching: 주어진 일련의 토큰의 구조에서 구문이 어떤 토큰에 포함되어 있는지를 파악하는 것이다. (e.g. what type of Nation(Korea)?) == 예시 == <syntaxhighlight lang="scala"> expr match { case variant_id_1(field_id_11, ... ) => expr1 case variant_id_2(field_id_22, ... ) => expr2 } </syntaxhighlight> 이를 좀더 구체적인 예로 생각해 보자면, <syntaxhighlight lang="scala"> shape match { case Triangle(a, b, c)=> a + b + c case Rectangle(h, w) => 2 * (h + w) _ => todo!() } </syntaxhighlight> 와 같이 shape의 타입을 판단하여 다른 결과를 가져오는 match패턴을 생각할 수 있다.
Pattern matching
문서로 돌아갑니다.