방금 하스켈을 this wikibook에서 배우기 시작했고 운동 중 하나에 약간 문제가있었습니다.하스켈의 부분 함수 적용
특히, 다음은 내가 약간
parseNumber :: Parser LispVal
parseNumber = (many1 digit) >>= (\n -> return $ Number . read $ n)
내가 return $ Number . read
이 같은 람다로 평가하지 않는 이유를 설명 할 수있는 사람을 기대했다 그것을 변경하지 않는 한 내가
parseNumber :: Parser LispVal
parseNumber = (many1 digit) >>= (return $ Number . read)
을 예상대로 작동하지 않습니다 함수는 부분적으로 함수 평가가 point free 스타일 코드에서 사용될 때 정확히 수행 할 것이라고 생각했기 때문에 두 번째 정의에서 명시 적으로 만든 함수입니다 (분명히 아닙니다!)
어떤 도움을 주셔서 감사합니다. 초보자의 모나드 문제가 아닙니다.
'돌아옵니다. 번호. 읽기 '는 효과가있다. – Ingo