다음과 같은 하스켈 코드를 보았습니다.
ps@(p:pt)
@
이 문맥에서 상징은 무엇을 의미합니까? Google에서 정보를 찾을 수없는 것 같습니다 (불행히도 Google에서 기호를 찾기가 어렵습니다). Prelude 설명서에서 기능을 찾을 수 없으므로 대신 일종의 구문 설탕이어야한다고 생각합니다.
다음과 같은 하스켈 코드를 보았습니다.
ps@(p:pt)
@
이 문맥에서 상징은 무엇을 의미합니까? Google에서 정보를 찾을 수없는 것 같습니다 (불행히도 Google에서 기호를 찾기가 어렵습니다). Prelude 설명서에서 기능을 찾을 수 없으므로 대신 일종의 구문 설탕이어야한다고 생각합니다.
답변:
@
모든 수준에서 작동 하는 것을 추가하고 싶습니다 .
let a @ (b @ (Just c), Just d) = (Just 1, Just 2) in (a, b, c, d)
그러면 다음이 생성됩니다. ((Just 1, Just 2), Just 1, 1, 2)
따라서 기본적으로 패턴을 값에 바인딩하는 방법입니다. 이것은 또한 위에서 설명한 것처럼 목록뿐만 아니라 모든 종류의 패턴으로 작동한다는 것을 의미합니다 . 더 많은 경우에 사용할 수 있기 때문에 이것은 매우 유용한 정보입니다.
이 경우, a
전체는 Maybe Tuple
, b
단지 첫 번째 Just
튜플하고, c
그리고 d
상기 제 및 제 포함 된 값이다 Just
각각 튜플
@
해당 페이지에서 두 번째 항목이 설명합니다.