Maybes 목록을 문자열 목록으로 변환하는 데 문제가 있습니다.from Just Haskell
내 목록은 [Nothing, Just 3, Just 9, Nothing, Nothing]과 비슷합니다.
아무 것도 모두 점 ('.')으로 바꾸고 모두 단순한 Int를 'Int'로 바꾸고 싶습니다.
내 솔루션 지금까지 작동하지 않습니다.
[if c == Nothing then c = '.' else show (fromJust c) | c <- [Nothing, Just 3.... etc] ]
는이 오류 메시지가 나타납니다 : 입력 '='난 그냥 값 c를 제공하지 못할 것 같은데요
'에 구문 분석 오류'. Java 또는 다른 언어와 같습니다.
아이디어가 있으십니까? Data.Maybe
import Data.Maybe
test = [Nothing, Just 3, Just 9, Nothing, Nothing]
f :: Show a => [Maybe a] -> [String]
f = map (maybe "." show)
Nitpick on nomenclature 그러나 이것은 유형의 종류 인 하스켈에서 중요한 것입니다. '아마도'아마 친절한'* -> * '을 가지므로''아마도''아마도''아마도''아마'의 목록 만 존재할 수 있습니다. 당신의 예제'[아무것도 아니에요, 그냥 3, 그냥 9, 아무것도, 아무것도 없습니다]'Num a => [어쩌면]'또는 아마도 [[Int]'일 것입니다. 그러나 이것은 당신의 문제와 관련이 거의 없습니다. – leftaroundabout
또한 원하는 경우 Nothings를 DataMay의 catMaybes :: [Maybe a] -> [a]를 사용하여 바꿀 수 있습니다. 그것은 당신에게 단지 Ints 만 남겨두고, 다른 것은 아무것도 남기지 않을 것입니다. 그것은 당신이 겪은 것이 아니지만 귀하의 질문을 찾는 다른 누군가가 후에있을 수 있습니다. – AndrewC