sqrtSums :: Int
sqrtSums = length (takeWhile (< 1000) (scanl1 (+) (map sqrt [1..]))) + 1
ghci> sqrtSums
131
ghci> sum (map sqrt [1..131])
1005.0942035344083
ghci> sum (map sqrt [1..130])
993.6486803921487
ΠΡ Π·Π°Π΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°Π»ΠΈ ΡΡΠ½ΠΊΡΠΈΡ takeWhile Π²ΠΌΠ΅ΡΡΠΎ filter, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΠΏΠΎΡΠ»Π΅Π΄Π½ΡΡ Π½Π΅ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π½Π° Π±Π΅ΡΠΊΠΎΠ½Π΅ΡΠ½ΡΡ ΡΠΏΠΈΡΠΊΠ°Ρ . Π ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ Π½Π°Ρ, ΡΡΠ½ΠΊΡΠΈΡ filter Π½Π΅ Π·Π½Π°Π΅Ρ, ΡΡΠΎ ΡΠΏΠΈΡΠΎΠΊ Π²ΠΎΠ·ΡΠ°ΡΡΠ°Π΅Ρ, ΠΏΠΎΡΡΠΎΠΌΡ ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ takeWhile, ΡΡΠΎΠ±Ρ ΠΎΡΡΠ΅ΡΡ ΡΠΏΠΈΡΠΎΠΊ, ΠΊΠ°ΠΊ ΡΠΎΠ»ΡΠΊΠΎ ΡΡΠΌΠΌΠ° ΠΏΡΠ΅Π²ΡΡΠΈΡ 1000.
ΠΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΉ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ° $
ΠΠΎΠΉΠ΄ΡΠΌ Π΄Π°Π»ΡΡΠ΅. Π’Π΅ΠΏΠ΅ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠΌ Π½Π°ΡΠ΅Π³ΠΎ Π²Π½ΠΈΠΌΠ°Π½ΠΈΡ ΡΡΠ°Π½Π΅Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ $, ΡΠ°ΠΊΠΆΠ΅ Π½Π°Π·ΡΠ²Π°Π΅ΠΌΡΠΉ Π°ΠΏΠΏΠ»ΠΈΠΊΠ°ΡΠΎΡΠΎΠΌ ΡΡΠ½ΠΊΡΠΈΠΉ. ΠΡΠ΅ΠΆΠ΄Π΅ Π²ΡΠ΅Π³ΠΎ ΠΏΠΎΡΠΌΠΎΡΡΠΈΠΌ, ΠΊΠ°ΠΊ ΠΎΠ½ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΡΡΡ:
($) :: (a β> b) β> a β> b
f $ x = f x
ΠΠ°ΡΠ΅ΠΌ? Π§ΡΠΎ ΡΡΠΎ Π·Π° Π±Π΅ΡΡΠΌΡΡΠ»Π΅Π½Π½ΡΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ? ΠΡΠΎ ΠΏΡΠΎΡΡΠΎ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ! ΠΠ΅ΡΠ½ΠΎ, ΠΏΠΎΡΡΠΈ, Π½ΠΎ Π½Π΅ ΡΠΎΠ²ΡΠ΅ΠΌ!.. Π ΡΠΎ Π²ΡΠ΅ΠΌΡ ΠΊΠ°ΠΊ ΠΎΠ±ΡΡΠ½ΠΎΠ΅ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ (Ρ ΠΏΡΠΎΠ±Π΅Π»ΠΎΠΌ) ΠΈΠΌΠ΅Π΅Ρ Π²ΡΡΡΠΈΠΉ ΠΏΡΠΈΠΎΡΠΈΡΠ΅Ρ, ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ $ ΠΈΠΌΠ΅Π΅Ρ ΡΠ°ΠΌΡΠΉ Π½ΠΈΠ·ΠΊΠΈΠΉ ΠΏΡΠΈΠΎΡΠΈΡΠ΅Ρ. ΠΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ Ρ ΠΏΡΠΎΠ±Π΅Π»ΠΎΠΌ Π»Π΅Π²ΠΎΠ°ΡΡΠΎΡΠΈΠ°ΡΠΈΠ²Π½ΠΎ (ΡΠΎ Π΅ΡΡΡ f a b c i β ΡΡΠΎ ΡΠΎ ΠΆΠ΅ ΡΠ°ΠΌΠΎΠ΅, ΡΡΠΎ (((f a) b) c)), Π² ΡΠΎ Π²ΡΠ΅ΠΌΡ ΠΊΠ°ΠΊ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ° $ ΠΏΡΠ°Π²ΠΎΠ°ΡΡΠΎΡΠΈΠ°ΡΠΈΠ²Π½ΠΎ.
ΠΡΡ ΡΡΠΎ ΠΏΡΠ΅ΠΊΡΠ°ΡΠ½ΠΎ, Π½ΠΎ Π½Π°ΠΌ-ΡΠΎ Ρ ΡΠΎΠ³ΠΎ ΠΊΠ°ΠΊΠ°Ρ ΠΏΠΎΠ»ΡΠ·Π°? ΠΡΠ΅ΠΆΠ΄Π΅ Π²ΡΠ΅Π³ΠΎ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ $ ΡΠ΄ΠΎΠ±Π΅Π½ ΡΠ΅ΠΌ, ΡΡΠΎ Ρ Π½ΠΈΠΌ Π½Π΅ ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΡΡΡ Π·Π°ΠΏΠΈΡΡΠ²Π°ΡΡ ΠΌΠ½ΠΎΠ³ΠΎ Π²Π»ΠΎΠΆΠ΅Π½Π½ΡΡ ΡΠΊΠΎΠ±ΠΎΠΊ. Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ sum (map sqrt [1..130]). ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ $ ΠΈΠΌΠ΅Π΅Ρ ΡΠ°ΠΌΡΠΉ Π½ΠΈΠ·ΠΊΠΈΠΉ ΠΏΡΠΈΠΎΡΠΈΡΠ΅Ρ, ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠ΅ΡΠ΅ΠΏΠΈΡΠ°ΡΡ ΡΡΠΎ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΠΊΠ°ΠΊ sum $ map sqrt [1..130], ΡΡΠΊΠΎΠ½ΠΎΠΌΠΈΠ² Π΄ΡΠ°Π³ΠΎΡΠ΅Π½Π½ΡΠ΅ Π½Π°ΠΆΠ°ΡΠΈΡ Π½Π° ΠΊΠ»Π°Π²ΠΈΡΠΈ. ΠΠΎΠ³Π΄Π° Π² ΡΡΠ½ΠΊΡΠΈΠΈ Π²ΡΡΡΠ΅ΡΠ°Π΅ΡΡΡ Π·Π½Π°ΠΊ $, Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΡΠΏΡΠ°Π²Π° ΠΎΡ Π½Π΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΊΠ°ΠΊ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ Π΄Π»Ρ ΡΡΠ½ΠΊΡΠΈΠΈ ΡΠ»Π΅Π²Π° ΠΎΡ Π½Π΅Π³ΠΎ. ΠΠ°ΠΊ Π½Π°ΡΡΡΡ sqrt 3 + 4 + 9? ΠΠ΄Π΅ΡΡ ΡΠΊΠ»Π°Π΄ΡΠ²Π°ΡΡΡΡ 9, 4 ΠΈ ΠΊΠΎΡΠ΅Π½Ρ ΠΈΠ· 3. ΠΡΠ»ΠΈ ΠΌΡ Ρ ΠΎΡΠΈΠΌ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΊΠ²Π°Π΄ΡΠ°ΡΠ½ΡΠΉ ΠΊΠΎΡΠ΅Π½Ρ ΡΡΠΌΠΌΡ, Π½Π°ΠΌ Π½Π°Π΄ΠΎ Π½Π°ΠΏΠΈΡΠ°ΡΡ sqrt (3 + 4 + 9) β ΠΈΠ»ΠΈ ΠΆΠ΅ (Π² ΡΠ»ΡΡΠ°Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ° $) sqrt $ 3 + 4 + 9, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ° $ Π½ΠΈΠ·ΡΠΈΠΉ ΠΏΡΠΈΠΎΡΠΈΡΠ΅Ρ ΡΡΠ΅Π΄ΠΈ Π²ΡΠ΅Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΎΠ². ΠΠΎΡ ΠΏΠΎΡΠ΅ΠΌΡ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΠΈΡΡ ΡΠΈΠΌΠ²ΠΎΠ» $ ΠΊΠ°ΠΊ ΡΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½Ρ Π·Π°ΠΏΠΈΡΠΈ ΠΎΡΠΊΡΡΠ²Π°ΡΡΠ΅ΠΉ ΡΠΊΠΎΠ±ΠΊΠΈ Ρ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ Π·Π°ΠΊΡΡΠ²Π°ΡΡΠ΅ΠΉ ΡΠΊΠΎΠ±ΠΊΠΈ Π² ΠΊΡΠ°ΠΉΠ½Π΅ΠΉ ΠΏΡΠ°Π²ΠΎΠΉ ΠΏΠΎΠ·ΠΈΡΠΈΠΈ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ.
ΠΠΎΡΠΌΠΎΡΡΠΈΠΌ Π΅ΡΡ Π½Π° ΠΎΠ΄ΠΈΠ½ ΠΏΡΠΈΠΌΠ΅Ρ:
ghci> sum (filter (> 10) (map (*2) [2..10]))
80
ΠΡΠ΅Π½Ρ ΠΌΠ½ΠΎΠ³ΠΎ ΡΠΊΠΎΠ±ΠΎΠΊ, Π΄Π°ΠΆΠ΅ ΠΊΠ°ΠΊ-ΡΠΎ ΡΡΠΎΠ΄Π»ΠΈΠ²ΠΎ. ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ $ ΠΏΡΠ°Π²ΠΎΠ°ΡΡΠΎΡΠΈΠ°ΡΠΈΠ²Π΅Π½, Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ f (g (z x)) ΡΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½ΡΠ½ΠΎ Π·Π°ΠΏΠΈΡΠΈ f $ g $ z x. ΠΠΎΡΡΠΎΠΌΡ ΠΏΡΠΈΠΌΠ΅Ρ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅ΠΏΠΈΡΠ°ΡΡ:
sum $ filter (> 10) $ map (*2) [2..10]
ΠΠΎ ΠΊΡΠΎΠΌΠ΅ ΠΈΠ·Π±Π°Π²Π»Π΅Π½ΠΈΡ ΠΎΡ ΡΠΊΠΎΠ±ΠΎΠΊ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ $ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ ΡΠ°ΠΌΠΎ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΌΠΎΠΆΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΠΊΠ°ΠΊ ΠΈ Π»ΡΠ±Π°Ρ Π΄ΡΡΠ³Π°Ρ ΡΡΠ½ΠΊΡΠΈΡ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΡΠΈΠΌΠ΅Π½ΠΈΡΡ ΡΡΠ½ΠΊΡΠΈΡ ΠΊ ΡΠΏΠΈΡΠΊΡ ΡΡΠ½ΠΊΡΠΈΠΉ:
ghci> map ($ 3) [(4+), (10*), ( 2), sqrt]
[7.0,30.0,9.0,1.7320508075688772]
Π€ΡΠ½ΠΊΡΠΈΡ ($ 3) ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΡΡΡ ΠΊ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΡΠΏΠΈΡΠΊΠ°. ΠΡΠ»ΠΈ Π·Π°Π΄ΡΠΌΠ°ΡΡΡΡ ΠΎ ΡΠΎΠΌ, ΡΡΠΎ ΠΎΠ½Π° Π΄Π΅Π»Π°Π΅Ρ, ΡΠΎ ΠΎΠΊΠ°ΠΆΠ΅ΡΡΡ, ΡΡΠΎ ΠΎΠ½Π° Π±Π΅ΡΡΡ ΡΡΠ½ΠΊΡΠΈΡ ΠΈ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅Ρ Π΅Ρ ΠΊ ΡΠΈΡΠ»Ρ 3. ΠΠΎΡΡΠΎΠΌΡ Π² Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΊΠ°ΠΆΠ΄Π°Ρ ΡΡΠ½ΠΊΡΠΈΡ ΠΈΠ· ΡΠΏΠΈΡΠΊΠ° ΠΏΡΠΈΠΌΠ΅Π½ΠΈΡΡΡ ΠΊ ΡΡΠΎΠΉΠΊΠ΅, ΡΡΠΎ, Π²ΠΏΡΠΎΡΠ΅ΠΌ, ΠΈ ΡΠ°ΠΊ ΠΎΡΠ΅Π²ΠΈΠ΄Π½ΠΎ.
ΠΠΎΠΌΠΏΠΎΠ·ΠΈΡΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΉ
Π ΠΌΠ°ΡΠ΅ΠΌΠ°ΡΠΈΠΊΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΉ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
(f Β° g)(x) = f (g (x))
ΠΡΠΎ Π·Π½Π°ΡΠΈΡ, ΡΡΠΎ ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡΠΈΡ Π΄Π²ΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ ΡΠΎΠ·Π΄Π°ΡΡ Π½ΠΎΠ²ΡΡ ΡΡΠ½ΠΊΡΠΈΡ, ΠΊΠΎΡΠΎΡΠ°Ρ, ΠΊΠΎΠ³Π΄Π° Π΅Ρ Π²ΡΠ·ΡΠ²Π°ΡΡ, ΡΠΊΠ°ΠΆΠ΅ΠΌ, Ρ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠΌ x, ΡΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½ΡΠ½Π° Π²ΡΠ·ΠΎΠ²Ρ g Ρ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠΌ x, Π° Π·Π°ΡΠ΅ΠΌ Π²ΡΠ·ΠΎΠ²Ρ f Ρ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠΌ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ Π²ΡΠ·ΠΎΠ²Π° Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΡΠ²ΠΎΠ΅Π³ΠΎ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°.
Π ΡΠ·ΡΠΊΠ΅ Haskell ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΉ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅ΡΡΡ ΡΠΎΡΠ½ΠΎ ΡΠ°ΠΊ ΠΆΠ΅. ΠΡ ΡΠΎΠ·Π΄Π°ΡΠΌ Π΅Ρ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ° (.), ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
(.) :: (b β> c) β> (a β> b) β> a β> c
f . g = \x β> f (g x)
ΠΠΎ Π΄Π΅ΠΊΠ»Π°ΡΠ°ΡΠΈΠΈ ΡΠΈΠΏΠ° ΡΡΠ½ΠΊΡΠΈΡ f Π΄ΠΎΠ»ΠΆΠ½Π° ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ ΡΠΎΠ³ΠΎ ΠΆΠ΅ ΡΠΈΠΏΠ°, ΡΡΠΎ ΠΈ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ ΡΡΠ½ΠΊΡΠΈΠΈ g. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΡΠ΅Π·ΡΠ»ΡΡΠΈΡΡΡΡΠ°Ρ ΡΡΠ½ΠΊΡΠΈΡ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ ΡΠΎΠ³ΠΎ ΠΆΠ΅ ΡΠΈΠΏΠ°, ΡΡΠΎ ΠΈ ΡΡΠ½ΠΊΡΠΈΡ g, ΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠΎΠ³ΠΎ ΠΆΠ΅ ΡΠΈΠΏΠ°, ΡΡΠΎ ΠΈ ΡΡΠ½ΠΊΡΠΈΡ f. ΠΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ negate . (* 3) Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΡΠ½ΠΊΡΠΈΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ ΡΠΈΡΠ»ΠΎ, ΡΠΌΠ½ΠΎΠΆΠ°Π΅Ρ Π΅Π³ΠΎ Π½Π° ΡΡΠΈ ΠΈ ΠΌΠ΅Π½ΡΠ΅Ρ Π΅Π³ΠΎ Π·Π½Π°ΠΊ Π½Π° ΠΏΡΠΎΡΠΈΠ²ΠΎΠΏΠΎΠ»ΠΎΠΆΠ½ΡΠΉ.
ΠΠ΄Π½ΠΎ ΠΈΠ· ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡΠΈΠΈ ΡΡΠ½ΠΊΡΠΈΠΉ β ΡΡΠΎ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΉ Β«Π½Π° Π»Π΅ΡΡΒ» Π΄Π»Ρ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ ΠΈΡ Π΄ΡΡΠ³ΠΈΠΌ ΡΡΠ½ΠΊΡΠΈΡΠΌ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ². ΠΠΎΠ½Π΅ΡΠ½ΠΎ, ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ Π°Π½ΠΎΠ½ΠΈΠΌΠ½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ, Π½ΠΎ Π·Π°ΡΠ°ΡΡΡΡ ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΉ ΠΏΠΎΠ½ΡΡΠ½Π΅Π΅ ΠΈ Π»Π°ΠΊΠΎΠ½ΠΈΡΠ½Π΅Π΅. ΠΠΎΠΏΡΡΡΠΈΠΌ, ΡΡΠΎ Ρ Π½Π°Ρ Π΅ΡΡΡ ΡΠΏΠΈΡΠΎΠΊ ΡΠΈΡΠ΅Π» ΠΈ ΠΌΡ Ρ ΠΎΡΠΈΠΌ ΡΠ΄Π΅Π»Π°ΡΡ ΠΈΡ ΠΎΡΡΠΈΡΠ°ΡΠ΅Π»ΡΠ½ΡΠΌΠΈ. ΠΠ΄ΠΈΠ½ ΠΈΠ· ΡΠΏΠΎΡΠΎΠ±ΠΎΠ² ΡΠ΄Π΅Π»Π°ΡΡ ΡΡΠΎ β ΠΏΠΎΠ»ΡΡΠΈΡΡ Π°Π±ΡΠΎΠ»ΡΡΠ½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠΈΡΠ»Π° (ΠΌΠΎΠ΄ΡΠ»Ρ), Π° Π·Π°ΡΠ΅ΠΌ ΠΏΠ΅ΡΠ΅Π²Π΅ΡΡΠΈ Π΅Π³ΠΎ Π² ΠΎΡΡΠΈΡΠ°ΡΠ΅Π»ΡΠ½ΠΎΠ΅, Π²ΠΎΡ ΡΠ°ΠΊ:
ghci> map (\x β> negate (abs x)) [5,β3,β6,7,β3,2,β19,24]
[β5,β3,β6,β7,β3,β2,β19,β24]
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° Π°Π½ΠΎΠ½ΠΈΠΌΠ½ΡΡ ΡΡΠ½ΠΊΡΠΈΡ ΠΈ Π½Π° ΡΠΎ, ΠΊΠ°ΠΊ ΠΎΠ½Π° ΠΏΠΎΡ ΠΎΠΆΠ° Π½Π° ΡΠ΅Π·ΡΠ»ΡΡΠΈΡΡΡΡΡΡ ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΉ. Π Π²ΠΎΡ ΡΡΠΎ Π²ΡΠΉΠ΄Π΅Ρ, Π΅ΡΠ»ΠΈ ΠΌΡ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡΠΈΠ΅ΠΉ:
ghci> map (negate . abs) [5,β3,β6,7,β3,2,β19,24]
[β5,β3,β6,β7,β3,β2,β19,β24]
ΠΠ΅Π²Π΅ΡΠΎΡΡΠ½ΠΎ! ΠΠΎΠΌΠΏΠΎΠ·ΠΈΡΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΉ ΠΏΡΠ°Π²ΠΎΠ°ΡΡΠΎΡΠΈΠ°ΡΠΈΠ²Π½Π°, ΠΏΠΎΡΡΠΎΠΌΡ Ρ Π½Π°Ρ Π΅ΡΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π²ΠΊΠ»ΡΡΠ°ΡΡ Π² Π½Π΅Ρ ΠΌΠ½ΠΎΠ³ΠΎ ΡΡΠ½ΠΊΡΠΈΠΉ Π·Π° ΠΎΠ΄ΠΈΠ½ ΡΠ°Π·. ΠΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ f (g (z x)) ΡΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½ΡΠ½ΠΎ (f . g . z) x. Π£ΡΠΈΡΡΠ²Π°Ρ ΡΡΠΎ, ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΡΠ΅Π²ΡΠ°ΡΠΈΡΡ
ghci> map (\xs β> negate (sum (tail xs))) [[1..5],[3..6],[1..7]]
[β14,β15,β27]
Π²
ghci> map (negate . sum . tail) [[1..5],[3..6],[1..7]]
[β14,β15,β27]
Π€ΡΠ½ΠΊΡΠΈΡ negate . sum . tail ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ ΡΠΏΠΈΡΠΎΠΊ, ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅Ρ ΠΊ Π½Π΅ΠΌΡ ΡΡΠ½ΠΊΡΠΈΡ tail, ΡΡΠΌΠΌΠΈΡΡΠ΅Ρ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ ΠΈ ΡΠΌΠ½ΠΎΠΆΠ°Π΅Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΠΎΠ΅ ΡΠΈΡΠ»ΠΎ Π½Π° -1. ΠΠΎΠ»ΡΡΠ°Π΅ΠΌ ΡΠΎΡΠ½ΡΠΉ ΡΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½Ρ Π°Π½ΠΎΠ½ΠΈΠΌΠ½ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈΠ· ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅Π³ΠΎ ΠΏΡΠΈΠΌΠ΅ΡΠ°.
ΠΠΎΠΌΠΏΠΎΠ·ΠΈΡΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΉ Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΠΌΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°ΠΌΠΈ
ΠΡ Π° ΠΊΠ°ΠΊ Π½Π°ΡΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ²? ΠΡΠ»ΠΈ ΠΌΡ Ρ ΠΎΡΠΈΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΈΡ Π² ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡΠΈΠΈ, ΠΎΠ±ΡΡΠ½ΠΎ ΠΌΡ ΡΠ°ΡΡΠΈΡΠ½ΠΎ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΠΌ ΠΈΡ Π΄ΠΎ ΡΠ΅Ρ ΠΏΠΎΡ, ΠΏΠΎΠΊΠ° Π½Π΅ ΠΏΠΎΠ»ΡΡΠΈΠΌ ΡΡΠ½ΠΊΡΠΈΡ, ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄ΠΈΠ½ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ. ΠΠ°ΠΏΠΈΡΡ
sum (replicate 5 (max 6.7 8.9))
ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½Π° ΡΠ°ΠΊ:
(sum . replicate 5) (max 6.7 8.9)
ΠΈΠ»ΠΈ ΡΠ°ΠΊ:
sum . replicate 5 $ max 6.7 8.9
Π€ΡΠ½ΠΊΡΠΈΡ replicate 5 ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΡΡΡ ΠΊ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΡ max 6.7 8.9, ΠΏΠΎΡΠ»Π΅ ΡΠ΅Π³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΠΎΠ³ΠΎ ΡΠΏΠΈΡΠΊΠ° ΡΡΠΌΠΌΠΈΡΡΡΡΡΡ. ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ ΡΡΠ½ΠΊΡΠΈΡ replicate ΡΠ°ΡΡΠΈΡΠ½ΠΎ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½Π° ΡΠ°ΠΊ, ΡΡΠΎΠ±Ρ Ρ Π½Π΅Ρ ΠΎΡΡΠ°Π»ΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄ΠΈΠ½ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ, ΡΠ°ΠΊ ΡΡΠΎ ΡΠ΅ΠΏΠ΅ΡΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ max 6.7 8.9 ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡΡΡ Π½Π° Π²Ρ ΠΎΠ΄ replicate 5; Π½ΠΎΠ²ΡΠΌ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠΌ ΠΎΠΊΠ°Π·ΡΠ²Π°Π΅ΡΡΡ ΡΠΏΠΈΡΠΎΠΊ ΡΠΈΡΠ΅Π», ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΡΠΎΠΌ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ sum.
ΠΡΠ»ΠΈ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΏΠΈΡΠ°ΡΡ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Ρ ΠΊΡΡΠ΅ΠΉ ΡΠΊΠΎΠ±ΠΎΠΊ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΡ ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡΠΈΡ, ΠΌΠΎΠΆΠ½ΠΎ ΡΠ½Π°ΡΠ°Π»Π° Π·Π°ΠΏΠΈΡΠ°ΡΡ ΡΠ°ΠΌΡΡ Π²Π½ΡΡΡΠ΅Π½Π½ΡΡ ΡΡΠ½ΠΊΡΠΈΡ Ρ Π΅Ρ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°ΠΌΠΈ, Π·Π°ΡΠ΅ΠΌ ΠΏΠΎΡΡΠ°Π²ΠΈΡΡ ΠΏΠ΅ΡΠ΅Π΄ Π½Π΅ΠΉ Π·Π½Π°ΠΊ $, Π° ΠΏΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ ΠΏΡΠΈΡΡΡΠ°ΠΈΠ²Π°ΡΡ Π²ΡΠ·ΠΎΠ²Ρ Π²ΡΠ΅Ρ Π΄ΡΡΠ³ΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΉ, Π·Π°ΠΏΠΈΡΡΠ²Π°Ρ ΠΈΡ Π±Π΅Π· ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π³ΠΎ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° ΠΈ ΡΠ°Π·Π΄Π΅Π»ΡΡ ΡΠΎΡΠΊΠ°ΠΌΠΈ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅
replicate 2 (product (map (*3) (zipWith max [1,2] [4,5])))
ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅ΠΏΠΈΡΠ°ΡΡ ΡΠ°ΠΊ:
replicate 2 . product . map (*3) $ zipWith max [1,2] [4,5]
ΠΠ°ΠΊ ΠΈΠ· ΠΎΠ΄Π½ΠΎΠ³ΠΎ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΏΠΎΠ»ΡΡΠΈΠ»ΠΎΡΡ Π΄ΡΡΠ³ΠΎΠ΅? ΠΡ, Π²ΠΎ-ΠΏΠ΅ΡΠ²ΡΡ , ΠΌΡ ΠΏΠΎΡΠΌΠΎΡΡΠ΅Π»ΠΈ Π½Π° ΡΠ°ΠΌΡΡ ΠΏΡΠ°Π²ΡΡ ΡΡΠ½ΠΊΡΠΈΡ ΠΈ Π΅Ρ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΠΊΠ°ΠΊ ΡΠ°Π· ΠΏΠ΅ΡΠ΅Π΄ Π³ΡΡΠΏΠΏΠΎΠΉ Π·Π°ΠΊΡΡΠ²Π°ΡΡΠΈΡ ΡΡ ΡΠΊΠΎΠ±ΠΎΠΊ. ΠΡΠΎ ΡΡΠ½ΠΊΡΠΈΡ zipWith max [1,2] [4,5]. Π’Π°ΠΊ Π΅Ρ ΠΈ Π·Π°ΠΏΠΈΡΠ΅ΠΌ:
zipWith max [1,2] [4,5]
ΠΠ°ΡΠ΅ΠΌ ΡΠΌΠΎΡΡΠΈΠΌ Π½Π° ΡΡΠ½ΠΊΡΠΈΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΡΡΡ ΠΊ zipWith max [1,2] [4,5], ΡΡΠΎ map (*3). ΠΠΎΡΡΠΎΠΌΡ ΠΌΡ ΡΡΠ°Π²ΠΈΠΌ ΠΌΠ΅ΠΆΠ΄Ρ Π½Π΅ΠΉ ΠΈ ΡΠ΅ΠΌ, ΡΡΠΎ Π±ΡΠ»ΠΎ ΡΠ°Π½ΡΡΠ΅, Π·Π½Π°ΠΊ $:
map (*3) $ zipWith max [1,2] [4,5]
Π’Π΅ΠΏΠ΅ΡΡ Π½Π°ΡΠΈΠ½Π°ΡΡΡΡ ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡΠΈΠΈ. ΠΡΠΎΠ²Π΅ΡΡΠ΅ΠΌ, ΠΊΠ°ΠΊΠ°Ρ ΡΡΠ½ΠΊΡΠΈΡ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΡΡΡ ΠΊΠΎ Π²ΡΠ΅ΠΌΡ ΡΡΠΎΠΌΡ, ΠΈ ΠΏΡΠΈΡΠΎΠ΅Π΄ΠΈΠ½ΡΠ΅ΠΌ Π΅Ρ ΠΊ map (*3):
product . map (*3) $ zipWith max [1,2] [4,5]
ΠΠ°ΠΊΠΎΠ½Π΅Ρ, Π΄ΠΎΠΏΠΈΡΡΠ²Π°Π΅ΠΌ ΡΡΠ½ΠΊΡΠΈΡ replicate 2 ΠΈ ΠΏΠΎΠ»ΡΡΠ°Π΅ΠΌ ΠΎΠΊΠΎΠ½ΡΠ°ΡΠ΅Π»ΡΠ½ΠΎΠ΅ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅:
replicate 2 . product . map (*3) $ zipWith max [1,2] [4,5]
ΠΡΠ»ΠΈ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π·Π°ΠΊΠ°Π½ΡΠΈΠ²Π°Π»ΠΎΡΡ Π½Π° ΡΡΠΈ Π·Π°ΠΊΡΡΠ²Π°ΡΡΠΈΠ΅ ΡΠΊΠΎΠ±ΠΊΠΈ, Π²Π΅Π»ΠΈΠΊΠΈ ΡΠ°Π½ΡΡ, ΡΡΠΎ Ρ Π²Π°Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡΡ Π΄Π²Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ° ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡΠΈΠΈ.
ΠΠ΅ΡΡΠΎΡΠ΅ΡΠ½Π°Ρ Π½ΠΎΡΠ°ΡΠΈΡ
ΠΠΎΠΌΠΏΠΎΠ·ΠΈΡΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΉ ΡΠ°ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΈ Π΄Π»Ρ ΡΠ°ΠΊ Π½Π°Π·ΡΠ²Π°Π΅ΠΌΠΎΠ³ΠΎ Π±Π΅ΡΡΠΎΡΠ΅ΡΠ½ΠΎΠ³ΠΎ ΡΡΠΈΠ»Ρ Π·Π°ΠΏΠΈΡΠΈ ΡΡΠ½ΠΊΡΠΈΠΉ. ΠΠΎΠ·ΡΠΌΡΠΌ, Π΄Π»Ρ ΠΏΡΠΈΠΌΠ΅ΡΠ°, ΡΡΠ½ΠΊΡΠΈΡ, ΠΊΠΎΡΠΎΡΡΡ ΠΌΡ Π½Π°ΠΏΠΈΡΠ°Π»ΠΈ ΡΠ°Π½Π΅Π΅:
sum' :: (Num a) => [a] β> a
sum' xs = foldl (+) 0 xs
ΠΠ±ΡΠ°Π·Π΅Ρ xs ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ Π΄Π²Π°ΠΆΠ΄Ρ Ρ ΠΏΡΠ°Π²ΠΎΠΉ ΡΡΠΎΡΠΎΠ½Ρ. ΠΠ·βΠ·Π° ΠΊΠ°ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΡΠΎΠΏΡΡΡΠΈΡΡ ΠΎΠ±ΡΠ°Π·Π΅Ρ xs Ρ ΠΎΠ±Π΅ΠΈΡ ΡΡΠΎΡΠΎΠ½, ΡΠ°ΠΊ ΠΊΠ°ΠΊ foldl (+) 0 ΡΠΎΠ·Π΄Π°ΡΡ ΡΡΠ½ΠΊΡΠΈΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ Π½Π° Π²Ρ ΠΎΠ΄ ΡΠΏΠΈΡΠΎΠΊ. ΠΡΠ»ΠΈ ΠΌΡ Π·Π°ΠΏΠΈΡΠ΅ΠΌ ΡΡΡ ΡΡΠ½ΠΊΡΠΈΡ ΠΊΠ°ΠΊ sum' = foldl (+) 0, ΡΠ°ΠΊΠ°Ρ Π·Π°ΠΏΠΈΡΡ Π±ΡΠ΄Π΅Ρ Π½Π°Π·ΡΠ²Π°ΡΡΡΡ Π±Π΅ΡΡΠΎΡΠ΅ΡΠ½ΠΎΠΉ. Π ΠΊΠ°ΠΊ Π·Π°ΠΏΠΈΡΠ°ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π² Π±Π΅ΡΡΠΎΡΠ΅ΡΠ½ΠΎΠΌ ΡΡΠΈΠ»Π΅?
fn x = ceiling (negate (tan (cos (max 50 x))))
ΠΡ Π½Π΅ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΡΠΎΡΡΠΎ ΠΈΠ·Π±Π°Π²ΠΈΡΡΡΡ ΠΎΡ ΠΎΠ±ΡΠ°Π·ΡΠ° x Ρ ΠΎΠ±Π΅ΠΈΡ ΠΏΡΠ°Π²ΡΡ ΡΡΠΎΡΠΎΠ½ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ. ΠΠ±ΡΠ°Π·Π΅Ρ x Π² ΡΠ΅Π»Π΅ ΡΡΠ½ΠΊΡΠΈΠΈ Π·Π°ΠΊΠ»ΡΡΡΠ½ Π² ΡΠΊΠΎΠ±ΠΊΠΈ. ΠΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ cos (max 50) Π½Π΅ Π±ΡΠ΄Π΅Ρ ΠΈΠΌΠ΅ΡΡ Π½ΠΈΠΊΠ°ΠΊΠΎΠ³ΠΎ ΡΠΌΡΡΠ»Π°. ΠΡ Π½Π΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²Π·ΡΡΡ ΠΊΠΎΡΠΈΠ½ΡΡ ΠΎΡ ΡΡΠ½ΠΊΡΠΈΠΈ! ΠΡΡ, ΡΡΠΎ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠ΄Π΅Π»Π°ΡΡ, β ΡΡΠΎ Π²ΡΡΠ°Π·ΠΈΡΡ ΡΡΠ½ΠΊΡΠΈΡ fn Π² Π²ΠΈΠ΄Π΅ ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡΠΈΠΈ ΡΡΠ½ΠΊΡΠΈΠΉ.