Dlaczego funkcja read
kończy działanie pliku wykonywalnego, gdy nie można przeanalizować jego argumentu?Czy istnieje całkowita alternatywa dla funkcji `czytaj`?
Wydaje mi się, że byłoby wygodniej mieć funkcję typu String -> Maybe a
, która zwraca Nothing
jeśli łańcuch nie może być analizowany z typem a
, ale nie mogę znaleźć czegoś podobnego. czego mi brakuje?
Nie znam zbyt wiele Haskella, ale nie rozumiem, jak funkcja "czytaj" może być czysta: z definicji ma * znaczące * skutki uboczne. –
@BasileStarynkevitch 'read' nie czyta z wejścia; po prostu konwertuje swój argument na 'String' (podobnie jak metoda Python' __str__'). – chepner
Jest to jedna z kilku funkcji w Prelude (w tym 'head' i' tail'), które mogły zostać wykonane w całości, ale zostały zdefiniowane jako częściowe funkcje dla uproszczenia. – chepner