рдЖрд▓рд╕реА hGetContentsред рдмрдЧ рдпрд╛ рд╕реБрд╡рд┐рдзрд╛? (рд╣рд╛рд╕реНрдХреЗрд▓)

рдореИрдВ рдПрдХ рд╡рд┐рд╖рдп рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд▓рдВрдмреЗ рд╕рдордп рд╕реЗ рдЪрд┐рдВрддрд┐рдд рд╣реВрдВред рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рдмреЛрд▓рдиреЗ рдФрд░ рд╕реБрдирдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ рдХрд┐ рд▓реЛрдЧ рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпрд╛ рд╕реЛрдЪрддреЗ рд╣реИрдВред рдпрд╣ hGetContents рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣реИред рдпрджрд┐ рдЖрдкрдиреЗ рдХрднреА рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд┐рдпрд╛ рд╣реИ, рддреЛ рдЖрдк рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдпрд╣ рдлрд╝рдВрдХреНрд╢рди рдлрд╝рд╛рдЗрд▓ (рд╕реНрдЯреНрд░реАрдо) рдХреА рд╕рд╛рдордЧреНрд░реА рдХреЛ рд▓реМрдЯрд╛рддрд╛ рд╣реИред рдЗрд╕ рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЙрджрд╛рд╣рд░рдг рдпрд╣рд╛рдВ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
import System.IO main = do file <- openFile "1.txt" ReadMode content <- hGetContents file print content hClose file -- :      


рд╕рдм рдХреБрдЫ рдмрд╣реБрдд рд╕рд╛рдорд╛рдиреНрдп рд╣реИ - рдлрд╝рд╛рдЗрд▓ рдЦреЛрд▓реЗрдВ, рд╕рд╛рдордЧреНрд░реА рдкрдврд╝реЗрдВ, рдЗрд╕реЗ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░реЗрдВ, рдлрд╝рд╛рдЗрд▓ рдмрдВрдж рдХрд░реЗрдВред HGetContents (рдпрд╛ рдмрд▓реНрдХрд┐ рд╣рд╛рд╕реНрдХреЗрд▓ рд╕реБрд╡рд┐рдзрд╛) рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдпрд╣ рдЖрд▓рд╕реА рд╣реИред рдЕрд░реНрдерд╛рддреН, рдлрд╝рд╛рдЗрд▓ рд╕реЗ рдбреЗрдЯрд╛ рддреБрд░рдВрдд рдкреВрд░реЗ рдореЗрдВ рдкрдврд╝рд╛ рдирд╣реАрдВ рдЬрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЖрд╡рд╢реНрдпрдХрддрд╛рдиреБрд╕рд╛рд░ рдкрдврд╝рд╛ рдЬрд╛рдПрдЧрд╛ред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдРрд╕рд╛ рдХрд╛рд░реНрдпрдХреНрд░рдо
 import System.IO main = do file <- openFile "1.txt" ReadMode content <- hGetContents file print $ take 3 content hClose file -- :   3      

рдХрд┐рд╕реА рдлрд╝рд╛рдЗрд▓ рд╕реЗ рдХреЗрд╡рд▓ рдкрд╣рд▓реЗ 3 рд╡рд░реНрдгреЛрдВ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рддрд╛ рд╣реИред
рдореИрдВ рдХреНрдпрд╛ рдХрд╣ рд╕рдХрддрд╛ рд╣реВрдВ, рдПрдХ рдорд╣рд╛рди рд╡рд┐рд╢реЗрд╖рддрд╛! рдпрд╣ рдЪрд░ рд╕рд╛рдордЧреНрд░реА (рдлрд╝рд╛рдЗрд▓ рд╕рд╛рдордЧреНрд░реА) рдкрд░ рд╕рдВрдЪрд╛рд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИ, рд▓реЗрдХрд┐рди рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ рдкрддрд╛ рд╣реИ рдХрд┐ рд╣рд╛рд╕реНрдХреЗрд▓ рдЗрд╕реЗ рдХреЗрд╡рд▓ рдЙрд╕реА рд╕реЗ рд▓реЗрдЧрд╛ рдЬреЛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ рдФрд░ рдЗрд╕рд╕реЗ рдЕрдзрд┐рдХ рдХреБрдЫ рдирд╣реАрдВред
рдЕрдм рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЙрджрд╛рд╣рд░рдг рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ
 import System.IO main = do file <- openFile "1.txt" ReadMode content <- hGetContents file hClose file print content -- :    

рдпрд╣рд╛рдВ рд╣рдордиреЗ рдкрд┐рдЫрд▓реА рджреЛ рд▓рд╛рдЗрдиреЛрдВ рдХреЛ рдлрд┐рд░ рд╕реЗ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд┐рдпрд╛ред рдкрд░рд┐рдгрд╛рдо рд╕реНрдХреНрд░реАрди рдкрд░ рдкреНрд░рджрд░реНрд╢рд┐рдд рдПрдХ рд░рд┐рдХреНрдд рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╣реЛрдЧрд╛ред рдРрд╕рд╛ рдХреНрдпреЛрдВ рд╣реБрдЖ? рдХрд╛рд░рдг рдпрд╣ рд╣реИ рдХрд┐ рд╣рдо рдлрд╝рд╛рдЗрд▓ рдХреЗ рдмрдВрдж рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж рдлрд╝рд╛рдЗрд▓ рдХреА рд╕рд╛рдордЧреНрд░реА рддрдХ рдкрд╣реБрдБрдЪрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдЬрдм hGetContents рдХреЛ рдХреЙрд▓ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рддреЛ рдбреЗрдЯрд╛ рдХрд╣реАрдВ рднреА рдкрдврд╝рд╛ рдирд╣реАрдВ рдЧрдпрд╛ рдерд╛, рдмрд╕ рдЗрд╕ рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдХреБрдЫ рд▓рд┐рдВрдХ рдЪрд░ рд╕рд╛рдордЧреНрд░реА рдореЗрдВ рд╕рд╣реЗрдЬрд╛ рдЧрдпрд╛ рдерд╛ред рдФрд░ рдлрд┐рд░, рдЬрдм рд╣рдореЗрдВ рд╕рд╛рдордЧреНрд░реА рд╕рд╛рдордЧреНрд░реА рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдереА, рддреЛ рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рдлрд╝рд╛рдЗрд▓ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдмрдВрдж рдереАред
рддреЛ рдпрд╣ рдХреНрдпрд╛ рд╣реИ, рдЖрдкрдХреЛ рд▓рдЧрддрд╛ рд╣реИ, рдЖрдкрдХреЛ рдлрд╝рд╛рдЗрд▓ рдмрдВрдж рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рд╕рд╛рдордЧреНрд░реА рдЪрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред

рдпрд╣рд╛рдВ рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рд╣рдо рдлрд╝рд╛рдЗрд▓ рдмрдВрдж рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рд╕рд╛рдордЧреНрд░реА рдЪрд░ рдХреА рдЧрдгрдирд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП "рдкреНрд░рд╛рдкреНрдд" рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ (рдпрджрд┐ рдХреЛрдИ рд╡рд┐рдзрд┐ рдЬрд╛рдирддрд╛ рд╣реИ, рддреЛ рд▓рд┐рдЦреЗрдВ)ред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рдПрдХ рдлрд╝рдВрдХреНрд╢рди рд▓рд┐рдЦрдиреЗ рдХреА рдЬрд╝рд░реВрд░рдд рд╣реИ рдЬреЛ рдПрдХ рдлрд╝рд╛рдЗрд▓ рдЦреЛрд▓рддрд╛ рд╣реИ, рд╕рд╛рдордЧреНрд░реА рдХреЛ рдкрдврд╝рддрд╛ рд╣реИ, рдХреБрдЫ рд╕рдВрд░рдЪрдирд╛ рдХреЛ рдкрд╛рд░реНрд╕ рдХрд░рддрд╛ рд╣реИ, рдлрд╝рд╛рдЗрд▓ рдХреЛ рдмрдВрдж рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рд╕рдВрд░рдЪрдирд╛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИред
 {-# OPTIONS_GHC -XScopedTypeVariables #-} import System.IO parseFile :: (Read a) => String -> IO a parseFile fileName = do file <- openFile fileName ReadMode content <- hGetContents file rezult <- return $ read content hClose file return rezult main = do a :: Int <- parseFile "1.txt" print a --:  
рдпрд╣ рдПрдХ рдкреНрд░рд╛рдердорд┐рдХ рдЙрджрд╛рд╣рд░рдг рд▓рдЧрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдЙрд╕реА рдХрд╛рд░рдг рд╕реЗред рддрдереНрдп рдпрд╣ рд╣реИ рдХрд┐ рд╣рдордиреЗ рдлрд╝рд╛рдЗрд▓ рдХреА рд╕рд╛рдордЧреНрд░реА рдХреЛ рдХреБрдЫ рд░реАрдб рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рдкрд╛рд░рд┐рдд рдХрд┐рдпрд╛, рдХреБрдЫ рднреА рдирд╣реАрдВ рдмрджрд▓рд╛, рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕реЗ рдмрд╛рдж рдХреЗ рд▓рд┐рдП рднреА рд╕реНрдердЧрд┐рдд рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдФрд░ рд╣рдо рдЬреЛ рдХреБрдЫ рднреА рд╕рд╛рдордЧреНрд░реА рдХреЗ рд╕рд╛рде рдХрд░рддреЗ рд╣реИрдВ, рдпрд╣ рд╣рд╛рд╕реНрдХреЗрд▓ рдХреЛ рдлрд╝рд╛рдЗрд▓ рд╕реЗ рд╕рд╛рдордЧреНрд░реА рдХреЛ рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ (рдЬрдм рддрдХ рдХрд┐, рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рд╣рдо рдЗрд╕реЗ рдкреНрд░рджрд░реНрд╢рд┐рдд рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ)ред
рдЖрдк рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рдкреВрд░реЗ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЛ рдУрдкрдирдлрд╛рдЗрд▓ рдФрд░ hClose рдХреЗ рдмреАрдЪ рдореЗрдВ рд░рдЦ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдХреНрдпрд╛ рд╣реЛрдЧрд╛ рдпрджрд┐ рдЖрдкрдХреЛ рдХрд┐рд╕реА рдлрд╛рдЗрд▓ рд╕реЗ рдХрдВрдЯреЗрдВрдЯ рдкрдврд╝рдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ, рдЙрд╕реЗ рд╕рд╣реА рдХрд░реЗрдВ рдФрд░ рдЙрд╕реА рдлрд╛рдЗрд▓ рдкрд░ рд▓рд┐рдЦреЗрдВ?

рдореИрдВрдиреЗ рд▓рдВрдмреЗ рд╕рдордп рддрдХ рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪрд╛ рдФрд░ рдпрд╣ рдорд╣рд╕реВрд╕ рдХрд┐рдпрд╛ рдХрд┐ "рдпрд╣рд╛рдБ рдХреБрдЫ рдЧрдбрд╝рдмрдбрд╝ рд╣реИ" рдореБрдЭреЗ рдЕрдХреЗрд▓рд╛ рдирд╣реАрдВ рдЫреЛрдбрд╝рд╛ред Haskell рдХреА рдкрд╡рд┐рддреНрд░рддрд╛ рдХрд╛ рдЙрд▓реНрд▓рдВрдШрди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдореИрдВрдиреЗ рдПрдХ рдкреНрд░реЛрдЧреНрд░рд╛рдо рд▓рд┐рдЦрд╛ рдерд╛ рдЬреЛ рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдк рд╕реЗ рд╕рд╣реА рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рд╕рд╣реА рдкрд░рд┐рдгрд╛рдо рдирд╣реАрдВ рджреЗрддрд╛ рд╣реИред рдореБрдЭреЗ рдХреНрдпрд╛ рд╕реЛрдЪрдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рд╡рд╣ рдЗрд╕ рдЪрд░ рдХреЛ рдХрд┐рд╕ рдмрд┐рдВрджреБ рдкрд░ рдореЛрдбрд╝ рджреЗрдЧрд╛ рдФрд░ рд╣реБрдб рдХреЗ рдиреАрдЪреЗ рд╡рд╣ рдХреНрдпрд╛ рдХрд░рддрд╛ рд╣реИ? рдпрд╣ рд╣рд╛рд╕реНрдХреЗрд▓ рдирд╣реАрдВ рд╣реИ, рдпрд╣ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХреЗ рд▓рд┐рдП рдЦреЗрдж рд╣реИ, рдХрд┐рд╕реА рддрд░рд╣ рдХрд╛ рд╕реА ++ред
рдирддреАрдЬрддрди, рдореИрдВ рдЗрд╕ рдирд┐рд╖реНрдХрд░реНрд╖ рдкрд░ рдкрд╣реБрдВрдЪрд╛ рдХрд┐ рдпрд╣ "рд╕реБрд╡рд┐рдзрд╛" рдПрдХ рд╡рд┐рд╢реЗрд╖рддрд╛ рдирд╣реАрдВ рд╣реИ, рдмрд▓реНрдХрд┐ рдПрдХ рдмрдЧ рд╣реИред рдЕрдЧрд░ рдореИрдВрдиреЗ рдЖрдкрдХреЛ рдЖрд╢реНрд╡рд╕реНрдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИ, рддреЛ рдпрд╣рд╛рдВ рдХреБрдЫ рдХрд╛рд░рдг рд╣реИрдВ:


рдореИрдВ рдпрд╣ рд╕рдм рдХреНрдпреЛрдВ рд╣реВрдБ? рддреБрдо рд╕рд┐рд░реНрдл рдореБрдЭреЗ рдЧрд▓рдд рдордд рд╕рдордЭреЛред рдореБрдЭреЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╣рд╛рд╕реНрдХреЗрд▓ рдмрд╣реБрдд рдкрд╕рдВрдж рд╣реИред рдЗрд╕рдХреА рд╢реБрджреНрдзрддрд╛, рдЖрд▓рд╕реНрдп, рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдФрд░ рдмрд╣реБрдд рдХреБрдЫ рдХреЗ рд▓рд┐рдП рдЬрд┐рд╕реЗ рд╢рдмреНрджреЛрдВ рдореЗрдВ рд╡реНрдпрдХреНрдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдореБрдЭреЗ рдЕрдЪрд╛рдирдХ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рдпрд╣ "рд╕реНрд╡рдЪреНрдЫ" рдирд╣реАрдВ рд╣реИ рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВрдиреЗ рдкрд╣рд▓реЗ рд╕реЛрдЪрд╛ рдерд╛ред рдХреБрдЫ рдорд┐рд╢реНрд░рд┐рдд рднрд╛рд╡рдирд╛ рдереА рдХрд┐ рдпрд╣ рд╕реБрд╡рд┐рдзрд╛ рдЕрдЪреНрдЫреА рд▓рдЧ рд░рд╣реА рдереА, рд▓реЗрдХрд┐рди рдХрд┐рд╕реА рднреА рддрд░рд╣ рд╕реЗ рдпрд╣ "рдЧрдВрджрд╛" рд╣реЛ рдЧрдпрд╛ред
рд╢рд╛рдпрдж рдореИрдВ рд╕рд┐рд░реНрдл рд╡реНрдпрд╛рдореЛрд╣ рд╣реВрдВред рдореИрдВ рдЖрдкрдХреА рд░рд╛рдп, рдмрдЧ рдпрд╛ рдлреАрдЪрд░ рд╕реБрдирдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛?

Source: https://habr.com/ru/post/In153659/


All Articles