2013-11-27 3 views
0

런타임시 데이터 구조를 조작하는 패턴 매칭의 요지가 있습니다. 필자는 패턴 매칭이 일치하는 패턴, 일치하는 표현식, 성공 연속 및 실패 연속이라는 4 가지 인수를 취한다는 것을 알고 있습니다. 그러나, 그 후, 라켓 문서를보고 나는 길을 잃었다. 이 코드를 코드로 구현하는 방법과 그 코드로 무엇을해야하는지 구체적으로 이해하지는 못합니다 (구체적인 내용, 줄 단위, 설명 예제). 다른 사람이 내게 패턴 매칭을 어렴풋이 설명 된 버전으로 설명해 주시겠습니까? 아마도 나를 도와 줄 기본 코드가 있습니까?라켓에서 패턴 일치를 설명 하시겠습니까?

+3

[패턴 일치] (http://www.cs.utah.edu/plt/snapshots/current/doc/guide/match.html)에서 라켓 가이드 항목을 보았습니까? 여기에는 몇 가지 구체적인 예가 있습니다. –

답변

3

패턴 일치, 우리는 데이터 구조체를 따로 따로 찢어하려는, 그래서 우리는 우리가에 대해 foo을 시도하는 생성자의 목록을 지정해야

(match foo 
    ...) 

다음을 폭파하기 위해 데이터의 조각에 전달합니다. 해당 생성자 중 하나에 의해 foo이 생성 된 경우 foo 필드를 지정된 변수에 바인딩하고 연결된 블록을 실행합니다.

(match foo 
    [(list a b) (+ a b)] 
    [_   (displayln "Hey that's not a list!")]) 

그게 전부 야! foo이 두 요소의 목록 인 경우 + a b을 실행하면 다른 연속을 실행하고 foo은 목록이 아님을 인쇄합니다.

3

패턴 일치 엔진을 구현하기 위해 학교 과제가있는 것 같습니다.

그렇다면이 강의를 시청하는 것이 재미있을 수도 있습니다. 4A: Pattern Matching and Rule-based Substitution.

강의는 그가 말하는 것에 대해 알고있는 사람이하는 것입니다. 그는 개념에 대해 이야기하고, 문제를 작은 조각으로 나누는 방법, 그리고 많은 코드 샘플을 보여줍니다.

관련 문제