하스켈에서 레코드 구문을 사용하는 방법을 이해하지만 중괄호 안의 내용을 이해하는 데 어려움이 있습니다 은입니다.하스켈 레코드 구문 desugared
data PairRecord = PR {foo::Int, bar::String} deriving (Eq,Show)
x = (PR {foo=1, bar="init"})
y= x {foo=23}
- 무엇 가이
{foo=23}
일이? 마지막 줄은 함수 x에 대한 인수 인 것처럼 보입니다. 이는 분명히 다릅니다. -
{foo=23}
이외의 다른 조치는 뒤에 기록하는 것 외에는 어떤 것도 기록 할 수 있습니까? do
표기법으로 할 수있는 것과 같은 공식적인 방법이 있나요?
x {foo = 23}을 제외 할 수는 있지만 {foo = 23}은 아무런 의미가 없으며 유일한 사용법은 fron의 x (또는 다른 레코드)와 함께 사용됩니까? –
네, 맞습니다. '{foo = ...} '문법은 레코드의 생성, 패턴 매치, 또는 레코드의 갱신에만 그리고 다른 컴포넌트와 결합해서 만 사용될 수 있습니다. 그것은 별 의미가 없습니다. – kosmikus