저는 하스켈 세계에서 아주 새롭습니다. 온라인 http://learnyouahaskell.com을 읽고 있었지만 패턴 일치 섹션에 대한 세부 정보를 이해할 수 없었습니다. 나는 그패턴 x : 문자열이있는 xs
myFunc' (firstLetter:_) = "Hello" ++firstLetter
그런 짓을하면 내가이 기능을
Couldn't match type ‘Char’ with ‘[Char]’
Expected type: [[Char]]
Actual type: [Char]
를 호출 할 때 나에게 오류를 다음 제공하는 기능
그러나myFunc' (firstLetter:_) = firstLetter -- returns firstLetter of given string
를 작성하지만 한이 같은 기능을 수정하는 경우
myFunc' (firstLetter:_) = "Hello" ++ [firstLetter]
이 함수를 호출하면 잘 작동합니다. 다른 경우에는 대괄호가 필요한 이유가 궁금합니다. 실제로 firstLetter 무엇입니까?
안녕하세요 Rakete1111, 의견을 보내 주셔서 감사합니다. 한 가지 더 확인하기 위해 작은 실험을했습니다. char에 [Char]를 추가 할 수 없다고 말씀하셨습니다. 그러나 ghci ('c': "dfg")에서이 줄을 사용하면 유효합니다. 그래서 우리는 (++) 연산자가 같은 타입을 요구한다고 말할 수 있습니다. –
@CanEldem 글쎄, 기술적으로, 예. 'c'의 타입은''dfg '', 즉'Char'에있는 원소의 타입이기 때문에 여러분은 라인이 유효합니다. ' "c": "dfg"'는 유효하지 않습니다. – Rakete1111