Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠ°Ρ ΡΠΈΠΏΠΈΠ·Π°ΡΠΈΡ
ΠΡΠ½ΠΎΠ²Π½ΡΠ΅ ΠΏΡΠΈΠ½ΡΠΈΠΏΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ: ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠ°Ρ ΠΈ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠ°Ρ ΡΠΈΠΏΠΈΠ·Π°ΡΠΈΡ
ΠΠΎΠ³Π΄Π° Π²Ρ ΠΈΠ·ΡΡΠ°Π΅ΡΠ΅ ΡΠ·ΡΠΊΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΡΠΎ Π² ΡΠ°Π·Π³ΠΎΠ²ΠΎΡΠ°Ρ ΡΠ°ΡΡΠΎ ΡΠ»ΡΡΠΈΡΠ΅ ΡΡΠ°Π·Ρ Π½Π°ΠΏΠΎΠ΄ΠΎΠ±ΠΈΠ΅ Β«ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΡΠΈΠΏΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉΒ» ΠΈΠ»ΠΈ Β«Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈ ΡΠΈΠΏΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉΒ». ΠΡΠΈ ΠΏΠΎΠ½ΡΡΠΈΡ ΠΎΠΏΠΈΡΡΠ²Π°ΡΡ ΠΏΡΠΎΡΠ΅ΡΡ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΡ ΡΠΈΠΏΠΎΠ², ΠΈ ΠΊΠ°ΠΊ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠ°Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° ΡΠΈΠΏΠΎΠ², ΡΠ°ΠΊ ΠΈ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠ°Ρ, ΠΎΡΠ½ΠΎΡΡΡΡΡ ΠΊ ΡΠ°Π·Π½ΡΠΌ ΡΠΈΡΡΠ΅ΠΌΠ°ΠΌ ΡΠΈΠΏΠΎΠ². Π‘ΠΈΡΡΠ΅ΠΌΠ° ΡΠΈΠΏΠΎΠ² β ΡΡΠΎ Π½Π°Π±ΠΎΡ ΠΏΡΠ°Π²ΠΈΠ», ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°ΡΡ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ, Π½Π°Π·ΡΠ²Π°ΡΡΠ΅Π΅ΡΡ Β«ΡΠΈΠΏΒ», ΡΠ°Π·Π»ΠΈΡΠ½ΡΠΌ ΡΡΡΠ½ΠΎΡΡΡΠΌ Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅: ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΌ, Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡΠΌ, ΡΡΠ½ΠΊΡΠΈΡΠΌ ΠΈΠ»ΠΈ ΠΌΠΎΠ΄ΡΠ»ΡΠΌΠΈ β Ρ ΠΊΠΎΠ½Π΅ΡΠ½ΠΎΠΉ ΡΠ΅Π»ΡΡ ΡΠΌΠ΅Π½ΡΡΠ΅Π½ΠΈΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π° ΠΎΡΠΈΠ±ΠΎΠΊ ΠΏΡΡΡΠΌ ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΆΠ΄Π΅Π½ΠΈΡ ΡΠΎΠ³ΠΎ, ΡΡΠΎ Π΄Π°Π½Π½ΡΠ΅ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡΡΡ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎ.
ΠΠ΅ Π²ΠΎΠ»Π½ΡΠΉΡΠ΅ΡΡ, Ρ Π·Π½Π°Ρ, ΡΡΠΎ ΡΡΠΎ Π²ΡΡ Π·Π²ΡΡΠΈΡ Π·Π°ΠΏΡΡΠ°Π½Π½ΠΎ, ΠΏΠΎΡΡΠΎΠΌΡ ΠΌΡ Π½Π°ΡΠ½ΡΠΌ Ρ ΠΎΡΠ½ΠΎΠ². Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ Β«ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΡ ΡΠΈΠΏΠΎΠ²Β» ΠΈ ΡΡΠΎ ΡΠ°ΠΊΠΎΠ΅ Π²ΠΎΠΎΠ±ΡΠ΅ ΡΠΈΠΏ?
Π’ΠΈΠΏ, ΡΠ°ΠΊΠΆΠ΅ ΠΈΠ·Π²Π΅ΡΡΠ½ΡΠΉ ΠΊΠ°ΠΊ ΡΠΈΠΏ Π΄Π°Π½Π½ΡΡ , ΡΡΠΎ Π²ΠΈΠ΄ ΠΊΠ»Π°ΡΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ, ΠΎΡΠΌΠ΅ΡΠ°ΡΡΠΈΠΉ ΠΎΠ΄Π½ΠΈΡ ΠΈΠ· ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ Π²ΠΈΠ΄ΠΎΠ² Π΄Π°Π½Π½ΡΡ . Π― Π½Π΅ Π»ΡΠ±Π»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ»ΠΎΠ²ΠΎ Β«ΡΠΈΠΏΒ» Π² ΡΡΠΎΠΌ ΡΠΌΡΡΠ»Π΅, ΠΏΠΎΡΡΠΎΠΌΡ ΡΠΊΠ°ΠΆΠ΅ΠΌ ΡΠ°ΠΊ: ΡΠΈΠΏ ΠΎΠΏΠΈΡΡΠ²Π°Π΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΡΡΡΠΊΡΡΡΡ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ), Π΅Ρ ΡΠ΅ΠΌΠ°Π½ΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΈ ΡΠΏΠΎΡΠΎΠ± Ρ ΡΠ°Π½Π΅Π½ΠΈΡ Π² ΠΏΠ°ΠΌΡΡΠΈ. ΠΡΠ»ΠΈ ΡΡΠΎ Π·Π²ΡΡΠΈΡ Π½Π΅ΠΏΠΎΠ½ΡΡΠ½ΠΎ, ΠΏΠΎΠ΄ΡΠΌΠ°ΠΉΡΠ΅ ΠΎ ΡΠ΅Π»ΡΡ , ΡΡΡΠΎΠΊΠ°Ρ , ΡΠΈΡΠ»Π°Ρ Ρ ΠΏΠ»Π°Π²Π°ΡΡΠ΅ΠΉ Π·Π°ΠΏΡΡΠΎΠΉ ΠΈ Π±ΡΠ»Π΅Π²ΡΡ Π²Π΅Π»ΠΈΡΠΈΠ½Π°Ρ β ΡΡΠΎ Π²ΡΡ ΡΠΈΠΏΡ. Π’ΠΈΠΏΡ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ°Π·Π±ΠΈΡΡ Π½Π° ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΠΈ:
Π ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΡΠ·ΡΠΊΠ°Ρ ΠΌΠΎΠ³ΡΡ ΡΠ°Π·Π»ΠΈΡΠ°ΡΡΡΡ ΠΏΡΠΈΠΌΠΈΡΠΈΠ²Π½ΡΠ΅ ΡΠΈΠΏΡ ΠΈ ΡΡΡΡΠΊΡΡΡΡ Π΄Π°Π½Π½ΡΡ , Π½ΠΎ ΠΏΡΠΈΠ½ΡΠΈΠΏ Π²Π΅Π·Π΄Π΅ ΠΎΠ΄ΠΈΠ½. Π’ΠΈΠΏ ΠΏΡΠΎΡΡΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ Π½Π°Π±ΠΎΡ ΠΏΡΠ°Π²ΠΈΠ» ΠΈ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»ΠΎΠ², ΠΊΠΎΡΠΎΡΡΠΌ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΎΠ²Π°ΡΡ ΡΠ»Π΅ΠΌΠ΅Π½Ρ Π΄Π°Π½Π½ΡΡ .
ΠΡΠΎΠ²Π΅ΡΠΊΠ° ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΡ ΡΠΈΠΏΠΎΠ²
Π‘ΡΡΠ΅ΡΡΠ²ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠΈΠΏΠΎΠ² Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ ΡΠΌΡΡΠ»Π° Π±Π΅Π· ΠΏΡΠΎΡΠ΅ΡΡΠ° ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΆΠ΄Π΅Π½ΠΈΡ ΡΠΎΠ³ΠΎ, ΡΡΠΎ ΡΡΠΈ ΡΠΈΠΏΡ ΠΈΠΌΠ΅ΡΡ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈΠΉ ΡΠΌΡΡΠ» ΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»Π½Π΅Π½Π°. Π’ΡΡ ΠΈ ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΡ Π½Π° ΠΏΠΎΠΌΠΎΡΡ ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΡ ΡΠΈΠΏΠΎΠ². ΠΡΠΎ ΠΏΡΠΎΡΠ΅ΡΡ ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΆΠ΄Π΅Π½ΠΈΡ ΠΈ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠΉ ΡΠΈΠΏΠΎΠ², ΠΈ ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΎΡ ΠΎΠ΄ΠΈΡΡ ΠΊΠ°ΠΊ Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ (Ρ.Π΅. ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ), ΡΠ°ΠΊ ΠΈ Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ (Ρ.Π΅. Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈ). ΠΡΠΎΠ²Π΅ΡΠΊΠ° ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΡ ΡΠΈΠΏΠΎΠ² Π½ΡΠΆΠ½Π°, ΡΡΠΎΠ±Ρ ΡΠ±Π΅Π΄ΠΈΡΡΡΡ Π² ΡΠΈΠΏΠΎΠ±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, ΡΡΠΎ ΡΠ²Π΅Π΄ΡΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΎΡΠΈΠ±ΠΎΠΊ, ΡΠ²ΡΠ·Π°Π½Π½ΡΡ Ρ ΡΠΈΠΏΠ°ΠΌΠΈ, ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡΠΌΡ. ΠΡΠΎ ΡΠ°ΠΊΠΈΠ΅ ΠΎΡΠΈΠ±ΠΊΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡΡ, ΠΊΠΎΠ³Π΄Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΡΡ Ρ ΡΠ΅ΠΌ ΡΠΈΠΏΠΎΠΌ, Ρ ΠΊΠ°ΠΊΠΈΠΌ ΠΎΠ½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΡΡΡ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Π°: Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΊΠΎΠ³Π΄Π° ΡΠ΅Π»ΠΎΠ΅ ΡΠΈΡΠ»ΠΎ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅ΡΡΡ Π·Π° ΡΠΈΡΠ»ΠΎ Ρ ΠΏΠ»Π°Π²Π°ΡΡΠ΅ΠΉ Π·Π°ΠΏΡΡΠΎΠΉ, ΠΈΠ»ΠΈ ΠΊΠΎΠ³Π΄Π° ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΡΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΡΡΡΠΎΠΊΠΈ ΠΈ ΡΠ΅Π»ΠΎΠ³ΠΎ:
Π₯ΠΎΡΡ Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ ΡΠ·ΡΠΊΠ°Ρ ΠΈ ΡΡΡΠΎΠΊΠΈ, ΠΈ ΡΠΈΡΠ»Π° ΠΌΠΎΠ³ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ +, ΡΡΠΎ Π·Π°ΡΠ°ΡΡΡΡ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊ ΠΎΡΠΈΠ±ΠΊΠ°ΠΌ ΡΠΈΠΏΠ°, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΡΡΠΎ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΠΎΠ±ΡΡΠ½ΠΎ Π½Π΅ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Ρ ΡΠ°Π·Π½ΡΠΌΠΈ ΡΠΈΠΏΠ°ΠΌΠΈ Π΄Π°Π½Π½ΡΡ .
ΠΠ»Ρ ΡΠ»ΡΡΠ°Ρ Π½Π΅ ΡΠΈΠΏΠΎΠ±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π΅Π΄ΠΈΠ½ΠΎΠ³ΠΎ Π°Π»Π³ΠΎΡΠΈΡΠΌΠ° Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ Π½Π΅Ρ. ΠΠ°ΠΊΠΈΠ΅-ΡΠΎ ΡΠ·ΡΠΊΠΈ Π²ΡΠ΄Π°ΡΡ ΠΎΡΠΈΠ±ΠΊΡ ΡΠΈΠΏΠ°, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΎΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅Ρ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΡ ΠΈΠ»ΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅, Π° Π² ΠΊΠ°ΠΊΠΈΡ -ΡΠΎ Π΅ΡΡΡ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΠ΅ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ ΡΠ°ΠΊΠΈΡ ΠΎΡΠΈΠ±ΠΎΠΊ (ΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌ ΠΏΠΎΡΠΎΠΉ ΠΎΡΠΈΠ±Π°ΡΡΡΡ ΠΏΡΠΈ ΡΠ°Π±ΠΎΡΠ΅ Ρ ΡΠΈΠΏΠ°ΠΌΠΈ). ΠΠ½Π΅ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΡΡΠΎΠ³ΠΎ, ΠΏΡΠΎΡΠ΅ΡΡ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΡΠΈΠΏΠΎΠ² β ΡΡΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΡ.
Π’Π΅ΠΏΠ΅ΡΡ, ΠΊΠΎΠ³Π΄Π° ΠΌΡ Π·Π½Π°Π΅ΠΌ, ΡΡΠΎ ΡΠ°ΠΊΠΎΠ΅ ΡΠΈΠΏΡ ΠΈ ΠΊΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΡ ΡΠΈΠΏΠΎΠ², ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ Π΄Π²Π° ΠΎΡΠ½ΠΎΠ²Π½ΡΡ Π²ΠΈΠ΄Π° ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ: ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΡΡ ΠΈ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΡΡ.
Π‘ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠ°Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° ΡΠΈΠΏΠΎΠ²
Π―Π·ΡΠΊ ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΡΠΈΠΏΠΈΠ·Π°ΡΠΈΠ΅ΠΉ, Π΅ΡΠ»ΠΈ ΡΠΈΠΏ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΈΠ·Π²Π΅ΡΡΠ΅Π½ Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ, Π° Π½Π΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ. Π’ΠΈΠΏΠΈΡΠ½ΡΠΌΠΈ ΠΏΡΠΈΠΌΠ΅ΡΠ°ΠΌΠΈ ΡΠ°ΠΊΠΈΡ ΡΠ·ΡΠΊΠΎΠ² ΡΠ²Π»ΡΡΡΡΡ Ada, C, C++, C#, JADE, Java, Fortran, Haskell, ML, Pascal, ΠΈ Scala.
ΠΠΎΠ»ΡΡΠΈΠΌ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²ΠΎΠΌ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΡΠΈΠΏΠΎΠ² ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΎΡ ΡΠ°ΠΊΡ, ΡΡΠΎ Π±ΠΎΠ»ΡΡΡΡ ΡΠ°ΡΡΡ ΠΎΡΠΈΠ±ΠΎΠΊ ΡΠΈΠΏΠΎΠ² ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡΠ»ΠΎΠ²ΠΈΡΡ Π½Π° ΡΠ°Π½Π½Π΅ΠΉ ΡΡΠ°Π΄ΠΈΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ. Π‘ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠ°Ρ ΡΠΈΠΏΠΈΠ·Π°ΡΠΈΡ ΠΎΠ±ΡΡΠ½ΠΎ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊ Π±ΠΎΠ»Π΅Π΅ Π±ΡΡΡΡΠΎΠΌΡ ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ Π·Π½Π°Π΅Ρ ΡΠΎΡΠ½ΡΠ΅ ΡΠΈΠΏΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ Π΄Π°Π½Π½ΡΡ ΠΈ ΡΠΎΠ·Π΄Π°ΡΡ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΠΌΠ°ΡΠΈΠ½Π½ΡΠΉ ΠΊΠΎΠ΄. Π‘ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠ°Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° ΡΠΈΠΏΠΎΠ² ΠΎΡΠ΅Π½ΠΈΠ²Π°Π΅Ρ Π»ΠΈΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ, Π΄ΠΎΡΡΡΠΏΠ½ΡΡ Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠ΄ΠΈΡΡ, ΡΡΠΎ ΠΏΡΠΎΠ²Π΅ΡΠ΅Π½Π½ΡΠ΅ ΡΡΠ»ΠΎΠ²ΠΈΡ ΡΠΎΠ±Π»ΡΠ΄Π°ΡΡΡΡ Π΄Π»Ρ Π²ΡΠ΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΡ Π²Π°ΡΠΈΠ°Π½ΡΠΎΠ² ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, ΡΡΠΎ ΠΈΠ·Π±Π°Π²Π»ΡΠ΅Ρ ΠΎΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΠΏΠ΅ΡΠ΅Π΄ ΠΊΠ°ΠΆΠ΄ΡΠΌ Π·Π°ΠΏΡΡΠΊΠΎΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ. ΠΠ΅Π· ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΡΠΈΠΏΠΎΠ² Π΄Π°ΠΆΠ΅ 100%-Π½ΠΎΠ΅ ΠΏΠΎΠΊΡΡΡΠΈΠ΅ ΡΠ΅ΡΡΠ°ΠΌΠΈ Π½Π΅ Π²ΡΠ΅Π³Π΄Π° ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ Π²ΡΡΠ²ΠΈΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΡΠΈΠ±ΠΊΠΈ ΡΠΈΠΏΠΈΠ·Π°ΡΠΈΠΈ.
ΠΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠ°Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° ΡΠΈΠΏΠΎΠ²
ΠΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠ°Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° ΡΠΈΠΏΠΎΠ² β ΡΡΠΎ ΠΏΡΠΎΡΠ΅ΡΡ ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΆΠ΄Π΅Π½ΠΈΡ ΡΠΈΠΏΠΎΠ±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π΅Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ. Π’ΠΈΠΏΠΈΡΠ½ΡΠΌΠΈ ΠΏΡΠΈΠΌΠ΅ΡΠ°ΠΌΠΈ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈ ΡΠΈΠΏΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΡΠ·ΡΠΊΠΎΠ² ΡΠ²Π»ΡΡΡΡΡ Groovy, JavaScript, Lisp, Lua, Objective-C, PHP, Prolog, Python, Ruby, Smalltalk ΠΈ Tcl.
ΠΠΎΠ»ΡΡΠ°Ρ ΡΠ°ΡΡΡ ΡΠΈΠΏΠΎΠ±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΡΡ ΡΠ·ΡΠΊΠΎΠ² Π² ΡΠΎΠΉ ΠΈΠ»ΠΈ ΠΈΠ½ΠΎΠΉ ΠΌΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΡΡ ΠΏΡΠΎΠ²Π΅ΡΠΊΡ ΡΠΈΠΏΠΎΠ², Π΄Π°ΠΆΠ΅ Π΅ΡΠ»ΠΈ ΠΎΡΠ½ΠΎΠ²Π½ΡΠΌ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠΌ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠ°Ρ. Π’Π°ΠΊ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΠΈΠ·-Π·Π° ΡΠΎΠ³ΠΎ, ΡΡΠΎ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²Π° Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ. ΠΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, ΡΡΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ Π΄Π²Π° ΡΠΈΠΏΠ°, A ΠΈ B, Π³Π΄Π΅ B β ΠΏΠΎΠ΄ΡΠΈΠΏ A. ΠΡΠ»ΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΠΏΡΡΠ°Π΅ΡΡΡ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°ΡΡ ΡΠΈΠΏ A Π² ΡΠΈΠΏ B, Ρ.Π΅. ΠΏΡΠΎΠΈΠ·Π²Π΅ΡΡΠΈ ΠΏΠΎΠ½ΠΈΠΆΠ°ΡΡΠ΅Π΅ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ΠΈΠ΅, ΡΠΎ ΡΡΠ° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ Π±ΡΠ΄Π΅Ρ ΠΎΠ΄ΠΎΠ±ΡΠ΅Π½Π° Π»ΠΈΡΡ Π² ΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅, ΠΊΠΎΠ³Π΄Π° Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π½Π° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ ΠΈΠΌΠ΅Π΅Ρ ΡΠΈΠΏ B. ΠΠΎΡΡΠΎΠΌΡ Π΄Π»Ρ ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΆΠ΄Π΅Π½ΠΈΡ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π½ΡΠΆΠ½Π° Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠ°Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° ΡΠΈΠΏΠΎΠ².
Π ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΡΠΈΠΏΠΎΠ², Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠ°Ρ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ²Π΅ΡΡΠΈ ΠΊ ΠΏΡΠ΅ΠΊΡΠ°ΡΠ΅Π½ΠΈΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΈΠ·-Π·Π° ΠΎΡΠΈΠ±ΠΎΠΊ ΡΠΈΠΏΠΈΠ·Π°ΡΠΈΠΈ. Π Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΡΠ·ΡΠΊΠ°Ρ ΡΡΠΎΠ³ΠΎ ΠΌΠΎΠΆΠ΅Ρ ΠΈΠ·Π±Π΅ΠΆΠ°ΡΡ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π±Π»Π°Π³ΠΎΠ΄Π°ΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ΅ ΠΎΡΠΈΠ±ΠΎΠΊ ΠΈΠ»ΠΈ ΡΠ»Π°Π±ΠΎΠΉ ΡΠΈΠΏΠΎΠ±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ). ΠΠ»Ρ ΠΈΠ·Π±Π΅ΠΆΠ°Π½ΠΈΡ ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΡ ΡΠΈΡΡΠ°ΡΠΈΠΈ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ½ΠΈΡ-ΡΠ΅ΡΡΡ.
ΠΠΎΠ΄, ΠΏΡΠΎΡΠ΅Π΄ΡΠΈΠΉ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΡΡ ΠΏΡΠΎΠ²Π΅ΡΠΊΡ ΡΠΈΠΏΠΎΠ², Π² ΠΎΠ±ΡΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΌΠ΅Π½Π΅Π΅ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°Π½; ΠΊΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΎΡΠΈΠ±ΠΎΠΊ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΈ, ΠΊΠ°ΠΊ ΡΠ»Π΅Π΄ΡΡΠ²ΠΈΠ΅, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΡ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΠΏΠ΅ΡΠ΅Π΄ ΠΊΠ°ΠΆΠ΄ΡΠΌ Π·Π°ΠΏΡΡΠΊΠΎΠΌ. Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠ°Ρ ΡΠΈΠΏΠΈΠ·Π°ΡΠΈΡ ΠΎΡΠΊΡΡΠ²Π°Π΅Ρ Π΄ΠΎΡΠΎΠ³Ρ Π΄ΡΡΠ³ΠΈΠΌ, ΠΌΠΎΡΠ½ΡΠΌ ΡΠ΅Ρ Π½ΠΈΠΊΠ°ΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΌΠ΅ΡΠ°ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ.
Π’ΠΈΠΏΠΈΡΠ½ΡΠ΅ Π·Π°Π±Π»ΡΠΆΠ΄Π΅Π½ΠΈΡ
ΠΠΈΡ 1: ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠ°Ρ / Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠ°Ρ ΡΠΈΠΏΠΈΠ·Π°ΡΠΈΡ == ΡΠΈΠ»ΡΠ½Π°Ρ / ΡΠ»Π°Π±Π°Ρ ΡΠΈΠΏΠΈΠ·Π°ΡΠΈΡ
ΠΠ±ΡΡΠ½ΡΠΌ Π·Π°Π±Π»ΡΠΆΠ΄Π΅Π½ΠΈΠ΅ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΌΠ½Π΅Π½ΠΈΠ΅, ΡΡΠΎ Π²ΡΠ΅ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΡΠΈΠΏΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΡΠ·ΡΠΊΠΈ ΡΠ²Π»ΡΡΡΡΡ ΡΠΈΠ»ΡΠ½ΠΎ ΡΠΈΠΏΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΌΠΈ, Π° Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈ ΡΠΈΠΏΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ β ΡΠ»Π°Π±ΠΎ ΡΠΈΠΏΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΌΠΈ. ΠΡΠΎ Π½Π΅Π²Π΅ΡΠ½ΠΎ, ΠΈ Π²ΠΎΡ ΠΏΠΎΡΠ΅ΠΌΡ.
Π‘ΠΈΠ»ΡΠ½ΠΎ ΡΠΈΠΏΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΡΠ·ΡΠΊ β ΡΡΠΎ ΡΠ°ΠΊΠΎΠΉ ΡΠ·ΡΠΊ, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΠΏΡΠΈΠ²ΡΠ·Π°Π½Ρ ΠΊ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΠΌ ΡΠΈΠΏΠ°ΠΌ Π΄Π°Π½Π½ΡΡ , ΠΈ ΠΊΠΎΡΠΎΡΡΠΉ Π²ΡΠ΄Π°ΡΡ ΠΎΡΠΈΠ±ΠΊΡ ΡΠΈΠΏΠΈΠ·Π°ΡΠΈΠΈ Π² ΡΠ»ΡΡΠ°Π΅ Π½Π΅ΡΠΎΠ²ΠΏΠ°Π΄Π΅Π½ΠΈΡ ΠΎΠΆΠΈΠ΄Π°Π΅ΠΌΠΎΠ³ΠΎ ΠΈ ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΡΠΈΠΏΠΎΠ² β ΠΊΠΎΠ³Π΄Π° Π±Ρ Π½Π΅ ΠΏΡΠΎΠ²ΠΎΠ΄ΠΈΠ»Π°ΡΡ ΠΏΡΠΎΠ²Π΅ΡΠΊΠ°. ΠΡΠΎΡΠ΅ Π²ΡΠ΅Π³ΠΎ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΠΈΡΡ ΡΠΈΠ»ΡΠ½ΠΎ ΡΠΈΠΏΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΡΠ·ΡΠΊ ΠΊΠ°ΠΊ ΡΠ·ΡΠΊ Ρ Π²ΡΡΠΎΠΊΠΎΠΉ ΡΠΈΠΏΠΎΠ±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΡΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π² ΡΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½Π½ΠΎΠΌ Π²ΡΡΠ΅ ΠΊΡΡΠΊΠ΅ ΠΊΠΎΠ΄Π° ΡΠΈΠ»ΡΠ½ΠΎ ΡΠΈΠΏΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΡΠ·ΡΠΊ Π²ΡΠ΄Π°ΡΡ ΡΠ²Π½ΡΡ ΠΎΡΠΈΠ±ΠΊΡ ΡΠΈΠΏΠΈΠ·Π°ΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΡΠ΅ΡΠ²ΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ:
ΠΡ ΡΠ°ΡΡΠΎ Π°ΡΡΠΎΡΠΈΠΈΡΡΠ΅ΠΌ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΡΠΈΠΏΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΡΠ·ΡΠΊΠΈ, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ Java ΠΈ C#, Ρ ΡΠΈΠ»ΡΠ½ΠΎ ΡΠΈΠΏΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΌ (ΠΎΠ½ΠΈ ΡΠ°ΠΊΠΈΠΌΠΈ ΠΈ ΡΠ²Π»ΡΡΡΡΡ), ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΡΠΈΠΏ Π΄Π°Π½Π½ΡΡ Π·Π°Π΄Π°ΡΡΡΡ ΡΠ²Π½ΠΎ ΠΏΡΠΈ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ β ΠΊΠ°ΠΊ Π² ΡΡΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ Π½Π° Java:
Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, Ruby, Python ΠΈ JavaScript (Π²ΡΠ΅ ΠΎΠ½ΠΈ ΠΎΠ±Π»Π°Π΄aΡΡ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΎΠΉ ΡΠΈΠΏΠΈΠ·Π°ΡΠΈΠ΅ΠΉ) ΡΠ°ΠΊΠΆΠ΅ ΡΠ²Π»ΡΡΡΡΡ ΡΠΈΠ»ΡΠ½ΠΎ ΡΠΈΠΏΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΌΠΈ, Ρ ΠΎΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΡ ΠΈ Π½Π΅ Π½ΡΠΆΠ½ΠΎ ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ ΡΠΈΠΏ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΏΡΠΈ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠΈ. Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ ΡΠ°ΠΊΠΎΠΉ ΠΆΠ΅ ΠΏΡΠΈΠΌΠ΅Ρ, Π½ΠΎ Π½Π°ΠΏΠΈΡΠ°Π½Π½ΡΠΉ Π½Π° Ruby:
ΠΠ±Π° ΡΠ·ΡΠΊΠ° ΡΠ²Π»ΡΡΡΡΡ ΡΠΈΠ»ΡΠ½ΠΎ ΡΠΈΠΏΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΌΠΈ, Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ ΡΠ°Π·Π½ΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΡΠΈΠΏΠΎΠ². Π’Π°ΠΊΠΈΠ΅ ΡΠ·ΡΠΊΠΈ, ΠΊΠ°ΠΊ Ruby, Python ΠΈ JavaScript Π½Π΅ ΡΡΠ΅Π±ΡΡΡ ΡΠ²Π½ΠΎΠ³ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΡΠΈΠΏΠΎΠ² ΠΈΠ·-Π·Π° Π²ΡΠ²ΠΎΠ΄Π° ΡΠΈΠΏΠΎΠ² β ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎ Π²ΡΠ²ΠΎΠ΄ΠΈΡΡ Π½ΡΠΆΠ½ΡΠΉ ΡΠΈΠΏ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΡ. ΠΡΠ²ΠΎΠ΄ ΡΠΈΠΏΠΎΠ² β ΡΡΠΎ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ ΡΠ·ΡΠΊΠ°, ΠΈ Π½Π΅ ΠΎΡΠ½ΠΎΡΠΈΡΡΡ ΠΊ ΡΠΈΡΡΠ΅ΠΌΠ°ΠΌ ΡΠΈΠΏΠΎΠ².
Π‘Π»Π°Π±ΠΎ ΡΠΈΠΏΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΡΠ·ΡΠΊ β ΡΡΠΎ ΡΠ·ΡΠΊ, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ Π½Π΅ ΠΏΡΠΈΠ²ΡΠ·Π°Π½Ρ ΠΊ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠΌΡ ΡΠΈΠΏΡ Π΄Π°Π½Π½ΡΡ ; Ρ Π½ΠΈΡ Π²ΡΡ Π΅ΡΡ Π΅ΡΡΡ ΡΠΈΠΏ, Π½ΠΎ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ ΡΠΈΠΏΠΎΠ±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ Π³ΠΎΡΠ°Π·Π΄ΠΎ ΡΠ»Π°Π±Π΅Π΅. Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΠΏΡΠΈΠΌΠ΅Ρ ΠΊΠΎΠ΄Π° Π½Π° PHP:
ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ PHP ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ ΡΠ»Π°Π±ΠΎΠΉ ΡΠΈΠΏΠΈΠ·Π°ΡΠΈΠ΅ΠΉ, ΠΎΡΠΈΠ±ΠΊΠΈ Π² ΡΡΠΎΠΌ ΠΊΠΎΠ΄Π΅ Π½Π΅Ρ. ΠΠ½Π°Π»ΠΎΠ³ΠΈΡΠ½ΠΎ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅ΠΌΡ ΠΏΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, Π½Π΅ Π²ΡΠ΅ ΡΠ»Π°Π±ΠΎ ΡΠΈΠΏΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΡΠ·ΡΠΊΠΈ ΡΠ²Π»ΡΡΡΡΡ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈ ΡΠΈΠΏΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΌΠΈ: PHP β ΡΡΠΎ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈ ΡΠΈΠΏΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΡΠ·ΡΠΊ, Π½ΠΎ Π²ΠΎΡ C β ΡΠΎΠΆΠ΅ ΡΠ·ΡΠΊ ΡΠΎ ΡΠ»Π°Π±ΠΎΠΉ ΡΠΈΠΏΠΈΠ·Π°ΡΠΈΠ΅ΠΉ β Π²ΠΎΠΈΡΡΠΈΠ½Ρ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΡΠΈΠΏΠΈΠ·ΠΈΡΠΎΠ²Π°Π½.
Π₯ΠΎΡΡ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠ°Ρ / Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠ°Ρ ΠΈ ΡΠΈΠ»ΡΠ½Π°Ρ / ΡΠ»Π°Π±Π°Ρ ΡΠΈΡΡΠ΅ΠΌΡ ΡΠΈΠΏΠΎΠ² ΠΈ ΡΠ²Π»ΡΡΡΡΡ ΡΠ°Π·Π½ΡΠΌΠΈ, ΠΎΠ½ΠΈ ΠΎΠ±Π΅ ΡΠ²ΡΠ·Π°Π½Ρ Ρ ΡΠΈΠΏΠΎΠ±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΡΡ. ΠΡΠΎΡΠ΅ Π²ΡΠ΅Π³ΠΎ ΡΡΠΎ Π²ΡΡΠ°Π·ΠΈΡΡ ΡΠ°ΠΊ: ΠΏΠ΅ΡΠ²Π°Ρ ΡΠΈΡΡΠ΅ΠΌΠ° Π³ΠΎΠ²ΠΎΡΠΈΡ ΠΎ ΡΠΎΠΌ, ΠΊΠΎΠ³Π΄Π° ΠΏΡΠΎΠ²Π΅ΡΡΠ΅ΡΡΡ ΡΠΈΠΏΠΎΠ±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΡ, Π° Π²ΡΠΎΡΠ°Ρ β ΠΊΠ°ΠΊ.
ΠΠΈΡ 2: ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠ°Ρ / Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠ°Ρ ΡΠΈΠΏΠΈΠ·Π°ΡΠΈΡ == ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΡΠ΅ΠΌΡΠ΅ / ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠΈΡΡΠ΅ΠΌΡΠ΅ ΡΠ·ΡΠΊΠΈ
ΠΡΠ΄Π΅Ρ Π²Π΅ΡΠ½ΡΠΌ ΡΠΊΠ°Π·Π°ΡΡ, ΡΡΠΎ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΡΠΈΠΏΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΡΠ·ΡΠΊΠΎΠ² ΠΎΠ±ΡΡΠ½ΠΎ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΡΡΡΡΡ, Π° Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈ ΡΠΈΠΏΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΡ β ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠΈΡΡΡΡΡΡ, Π½ΠΎ ΠΎΠ±ΠΎΠ±ΡΠΈΡΡ ΡΡΠΎ ΡΡΠ²Π΅ΡΠΆΠ΄Π΅Π½ΠΈΠ΅ Π½Π΅Π»ΡΠ·Ρ, ΠΈ ΡΠΎΠΌΡ Π΅ΡΡΡ ΠΏΡΠΎΡΡΠΎΠΉ ΠΏΡΠΈΠΌΠ΅Ρ.
ΠΠΎΠ³Π΄Π° ΠΌΡ Π³ΠΎΠ²ΠΎΡΠΈΠΌ ΠΎ ΡΠΈΠΏΠΈΠ·Π°ΡΠΈΠΈ ΡΠ·ΡΠΊΠ°, ΠΌΡ Π³ΠΎΠ²ΠΎΡΠΈΠΌ ΠΎ ΡΠ·ΡΠΊΠ΅ ΠΊΠ°ΠΊ ΠΎ ΡΠ΅Π»ΠΎΠΌ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π½Π΅Π²Π°ΠΆΠ½ΠΎ, ΠΊΠ°ΠΊΡΡ Π²Π΅ΡΡΠΈΡ Java Π²Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ β ΠΎΠ½Π° Π²ΡΠ΅Π³Π΄Π° Π±ΡΠ΄Π΅Ρ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΡΠΈΠΏΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΉ. ΠΡΠΎ ΠΎΡΠ»ΠΈΡΠ°Π΅ΡΡΡ ΠΎΡ ΡΠΎΠ³ΠΎ ΡΠ»ΡΡΠ°Ρ, ΠΊΠΎΠ³Π΄Π° ΡΠ·ΡΠΊ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΡΠ΅ΠΌΡΠΌ ΠΈΠ»ΠΈ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠΈΡΡΠ΅ΠΌΡΠΌ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π² ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΌΡ Π³ΠΎΠ²ΠΎΡΠΈΠΌ ΠΎ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠΉ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΡΠ·ΡΠΊΠ°. Π ΡΠ΅ΠΎΡΠΈΠΈ, Π»ΡΠ±ΠΎΠΉ ΡΠ·ΡΠΊ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΊΠ°ΠΊ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΡΠ΅ΠΌΡΠΌ, ΡΠ°ΠΊ ΠΈ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠΈΡΡΠ΅ΠΌΡΠΌ. Π‘Π°ΠΌΠ°Ρ ΠΏΠΎΠΏΡΠ»ΡΡΠ½Π°Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΡΠ·ΡΠΊΠ° Java ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΡ Π² Π±Π°ΠΉΡΠΊΠΎΠ΄, ΠΊΠΎΡΠΎΡΡΠΉ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠΈΡΡΠ΅Ρ JVM β Π½ΠΎ Π΅ΡΡΡ ΠΈ ΠΈΠ½ΡΠ΅ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΡΡΠΎΠ³ΠΎ ΡΠ·ΡΠΊΠ°, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΡΡΡΡΡ Π½Π°ΠΏΡΡΠΌΡΡ Π² ΠΌΠ°ΡΠΈΠ½Π½ΡΠΉ ΠΊΠΎΠ΄ ΠΈΠ»ΠΈ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠΈΡΡΡΡΡΡ ΠΊΠ°ΠΊ Π΅ΡΡΡ.
ΠΡΠ»ΠΈ ΡΡΠΎ Π²ΡΡ Π΅ΡΡ Π½Π΅ΠΏΠΎΠ½ΡΡΠ½ΠΎ, ΡΠΎΠ²Π΅ΡΡΡ ΠΏΡΠΎΡΠ΅ΡΡΡ ΠΎΠ΄Π½Ρ ΠΈΠ· ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠΈΡ ΡΡΠ°ΡΠ΅ΠΉ ΡΡΠΎΠ³ΠΎ ΡΠΈΠΊΠ»Π°.
ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅
Π― Π·Π½Π°Ρ, ΡΡΠΎ Π² ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ Π±ΡΠ»ΠΎ ΠΌΠ½ΠΎΠ³ΠΎ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ β Π½ΠΎ Ρ Π²Π΅ΡΡ, ΡΡΠΎ Π²Ρ ΡΠΏΡΠ°Π²ΠΈΠ»ΠΈΡΡ. Π― Π±Ρ Ρ ΠΎΡΠ΅Π» Π²ΡΠ½Π΅ΡΡΠΈ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΏΡΠΎ ΡΠΈΠ»ΡΠ½ΡΡ / ΡΠ»Π°Π±ΡΡ ΡΠΈΠΏΠΈΠ·Π°ΡΠΈΡ Π² ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ ΡΡΠ°ΡΡΡ, Π½ΠΎ ΡΡΠΎ Π½Π΅ ΡΠ°ΠΊΠ°Ρ Π²Π°ΠΆΠ½Π°Ρ ΡΠ΅ΠΌΠ°; ΠΊ ΡΠΎΠΌΡ ΠΆΠ΅, Π½ΡΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ ΠΏΠΎΠΊΠ°Π·Π°ΡΡ, ΡΡΠΎ ΡΡΠΎΡ Π²ΠΈΠ΄ ΡΠΈΠΏΠΈΠ·Π°ΡΠΈΠΈ Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΡ ΠΊ ΠΏΡΠΎΠ²Π΅ΡΠΊΠ΅ ΡΠΈΠΏΠΎΠ².
ΠΠ΅Ρ ΠΎΠ΄Π½ΠΎΠ·Π½Π°ΡΠ½ΠΎΠ³ΠΎ ΠΎΡΠ²Π΅ΡΠ° Π½Π° Π²ΠΎΠΏΡΠΎΡ Β«ΠΊΠ°ΠΊΠ°Ρ ΡΠΈΠΏΠΈΠ·Π°ΡΠΈΡ Π»ΡΡΡΠ΅?Β» β Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π΅ΡΡΡ ΡΠ²ΠΎΠΈ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π° ΠΈ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΊΠΈ. ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ·ΡΠΊΠΈ β ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ Perl ΠΈ C# β Π΄Π°ΠΆΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ Π²Π°ΠΌ ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎ Π²ΡΠ±ΠΈΡΠ°ΡΡ ΠΌΠ΅ΠΆΠ΄Ρ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΈ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠ°ΠΌΠΈ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΡΠΈΠΏΠΎΠ². ΠΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΡΡΠΈΡ ΡΠΈΡΡΠ΅ΠΌ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ Π²Π°ΠΌ Π»ΡΡΡΠ΅ ΠΏΠΎΠ½ΡΡΡ ΠΏΡΠΈΡΠΎΠ΄Ρ Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡΡΠΈΡ ΠΎΡΠΈΠ±ΠΎΠΊ, Π° ΡΠ°ΠΊΠΆΠ΅ ΡΠΏΡΠΎΡΡΠΈΡ Π±ΠΎΡΡΠ±Ρ Ρ Π½ΠΈΠΌΠΈ.
ΠΠΈΠΊΠ±Π΅Π· ΠΏΠΎ ΡΠΈΠΏΠΈΠ·Π°ΡΠΈΠΈ Π² ΡΠ·ΡΠΊΠ°Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ
ΠΡΠ° ΡΡΠ°ΡΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠΉ ΠΌΠΈΠ½ΠΈΠΌΡΠΌ ΡΠ΅Ρ Π²Π΅ΡΠ΅ΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠΎΡΡΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π·Π½Π°ΡΡ ΠΎ ΡΠΈΠΏΠΈΠ·Π°ΡΠΈΠΈ, ΡΡΠΎΠ±Ρ Π½Π΅ Π½Π°Π·ΡΠ²Π°ΡΡ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΡΡ ΡΠΈΠΏΠΈΠ·Π°ΡΠΈΡ Π·Π»ΠΎΠΌ, Lisp β Π±Π΅ΡΡΠΈΠΏΠΎΠ²ΡΠΌ ΡΠ·ΡΠΊΠΎΠΌ, Π° C β ΡΠ·ΡΠΊΠΎΠΌ ΡΠΎ ΡΡΡΠΎΠ³ΠΎΠΉ ΡΠΈΠΏΠΈΠ·Π°ΡΠΈΠ΅ΠΉ.
Π ΠΏΠΎΠ»Π½ΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎΠ΅ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ Π²ΡΠ΅Ρ Π²ΠΈΠ΄ΠΎΠ² ΡΠΈΠΏΠΈΠ·Π°ΡΠΈΠΈ, ΠΏΡΠΈΠΏΡΠ°Π²Π»Π΅Π½Π½ΠΎΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΠ°ΠΌΠΈ ΠΊΠΎΠ΄Π°, ΡΡΡΠ»ΠΊΠ°ΠΌΠΈ Π½Π° ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΡΠ΅ ΡΠ·ΡΠΊΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ ΠΏΠΎΠΊΠ°Π·Π°ΡΠ΅Π»ΡΠ½ΡΠΌΠΈ ΠΊΠ°ΡΡΠΈΠ½ΠΊΠ°ΠΌΠΈ.
Π Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΡ ΠΏΡΠΎΡΠΈΡΠ°ΡΡ ΡΠ½Π°ΡΠ°Π»Π° ΠΊΡΠ°ΡΠΊΡΡ Π²Π΅ΡΡΠΈΡ ΡΡΠ°ΡΡΠΈ, Π° Π·Π°ΡΠ΅ΠΌ ΠΏΡΠΈ Π½Π°Π»ΠΈΡΠΈΠΈ ΠΆΠ΅Π»Π°Π½ΠΈΡ ΠΈ ΠΏΠΎΠ»Π½ΡΡ.
ΠΡΠ°ΡΠΊΠ°Ρ Π²Π΅ΡΡΠΈΡ
Π―Π·ΡΠΊΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΏΠΎ ΡΠΈΠΏΠΈΠ·Π°ΡΠΈΠΈ ΠΏΡΠΈΠ½ΡΡΠΎ Π΄Π΅Π»ΠΈΡΡ Π½Π° Π΄Π²Π° Π±ΠΎΠ»ΡΡΠΈΡ Π»Π°Π³Π΅ΡΡ β ΡΠΈΠΏΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΠΈ Π½Π΅ΡΠΈΠΏΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ (Π±Π΅ΡΡΠΈΠΏΠΎΠ²ΡΠ΅). Π ΠΏΠ΅ΡΠ²ΠΎΠΌΡ Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ ΠΎΡΠ½ΠΎΡΡΡΡΡ C, Python, Scala, PHP ΠΈ Lua, Π° ΠΊΠΎ Π²ΡΠΎΡΠΎΠΌΡ β ΡΠ·ΡΠΊ Π°ΡΡΠ΅ΠΌΠ±Π»Π΅ΡΠ°, Forth ΠΈ Brainfuck.
Π’Π°ΠΊ ΠΊΠ°ΠΊ Β«Π±Π΅ΡΡΠΈΠΏΠΎΠ²Π°Ρ ΡΠΈΠΏΠΈΠ·Π°ΡΠΈΡΒ» ΠΏΠΎ ΡΠ²ΠΎΠ΅ΠΉ ΡΡΡΠΈ β ΠΏΡΠΎΡΡΠ° ΠΊΠ°ΠΊ ΠΏΡΠΎΠ±ΠΊΠ°, Π΄Π°Π»ΡΡΠ΅ ΠΎΠ½Π° Π½ΠΈ Π½Π° ΠΊΠ°ΠΊΠΈΠ΅ Π΄ΡΡΠ³ΠΈΠ΅ Π²ΠΈΠ΄Ρ Π½Π΅ Π΄Π΅Π»ΠΈΡΡΡ. Π Π²ΠΎΡ ΡΠΈΠΏΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΡΠ·ΡΠΊΠΈ ΡΠ°Π·Π΄Π΅Π»ΡΡΡΡΡ Π΅ΡΠ΅ Π½Π° Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΠ΅ΡΠ΅ΡΠ΅ΠΊΠ°ΡΡΠΈΡ ΡΡ ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΠΉ:
ΠΡΠΈΠΌΠ΅ΡΡ:
Π‘ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠ°Ρ: C, Java, C#;
ΠΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠ°Ρ: Python, JavaScript, Ruby.
ΠΡΠΈΠΌΠ΅ΡΡ:
Π‘ΠΈΠ»ΡΠ½Π°Ρ: Java, Python, Haskell, Lisp;
Π‘Π»Π°Π±Π°Ρ: C, JavaScript, Visual Basic, PHP.
ΠΡΠΈΠΌΠ΅ΡΡ:
Π―Π²Π½Π°Ρ: C++, D, C#
ΠΠ΅ΡΠ²Π½Π°Ρ: PHP, Lua, JavaScript
Π’Π°ΠΊΠΆΠ΅ Π½ΡΠΆΠ½ΠΎ Π·Π°ΠΌΠ΅ΡΠΈΡΡ, ΡΡΠΎ Π²ΡΠ΅ ΡΡΠΈ ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΠΈ ΠΏΠ΅ΡΠ΅ΡΠ΅ΠΊΠ°ΡΡΡΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ ΡΠ·ΡΠΊ C ΠΈΠΌΠ΅Π΅Ρ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΡΡ ΡΠ»Π°Π±ΡΡ ΡΠ²Π½ΡΡ ΡΠΈΠΏΠΈΠ·Π°ΡΠΈΡ, Π° ΡΠ·ΡΠΊ Python β Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΡΡ ΡΠΈΠ»ΡΠ½ΡΡ Π½Π΅ΡΠ²Π½ΡΡ.
Π’Π΅ΠΌ-Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ Π½Π΅ Π±ΡΠ²Π°Π΅Ρ ΡΠ·ΡΠΊΠΎΠ² ΡΠΎ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΈ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΎΠΉ ΡΠΈΠΏΠΈΠ·Π°ΡΠΈΠΉ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ. Π₯ΠΎΡΡ Π·Π°Π±Π΅Π³Π°Ρ Π²ΠΏΠ΅ΡΠ΅Π΄ ΡΠΊΠ°ΠΆΡ, ΡΡΠΎ ΡΡΡ Ρ Π²ΡΡ β ΠΎΠ½ΠΈ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΡΡΠ΅ΡΡΠ²ΡΡΡ, Π½ΠΎ ΠΎΠ± ΡΡΠΎΠΌ ΠΏΠΎΠ·ΠΆΠ΅.
ΠΠΎΠ΄ΡΠΎΠ±Π½Π°Ρ Π²Π΅ΡΡΠΈΡ
ΠΡΠ»ΠΈ ΠΊΡΠ°ΡΠΊΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ ΠΠ°ΠΌ ΠΏΠΎΠΊΠ°Π·Π°Π»ΠΎΡΡ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ, Ρ ΠΎΡΠΎΡΠΎ. ΠΠ΅ Π·ΡΡ ΠΆΠ΅ Ρ ΠΏΠΈΡΠ°Π» ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΡΡ? ΠΠ»Π°Π²Π½ΠΎΠ΅, ΡΡΠΎ Π² ΠΊΡΠ°ΡΠΊΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ ΠΏΡΠΎΡΡΠΎ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ ΡΠΌΠ΅ΡΡΠΈΡΡ Π²ΡΡ ΠΏΠΎΠ»Π΅Π·Π½ΡΡ ΠΈ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ, Π° ΠΏΠΎΠ΄ΡΠΎΠ±Π½Π°Ρ Π±ΡΠ΄Π΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΡΠ»ΠΈΡΠΊΠΎΠΌ Π΄Π»ΠΈΠ½Π½ΠΎΠΉ, ΡΡΠΎΠ±Ρ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠΌΠΎΠ³ Π΅Π΅ ΠΏΡΠΎΡΠ΅ΡΡΡ, Π½Π΅ Π½Π°ΠΏΡΡΠ³Π°ΡΡΡ.
ΠΠ΅ΡΡΠΈΠΏΠΎΠ²Π°Ρ ΡΠΈΠΏΠΈΠ·Π°ΡΠΈΡ
Π Π±Π΅ΡΡΠΈΠΏΠΎΠ²ΡΡ ΡΠ·ΡΠΊΠ°Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ β Π²ΡΠ΅ ΡΡΡΠ½ΠΎΡΡΠΈ ΡΡΠΈΡΠ°ΡΡΡΡ ΠΏΡΠΎΡΡΠΎ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡΠΌΠΈ Π±ΠΈΡ, ΡΠ°Π·Π»ΠΈΡΠ½ΠΎΠΉ Π΄Π»ΠΈΠ½Ρ.
ΠΠ΅ΡΡΠΈΠΏΠΎΠ²Π°Ρ ΡΠΈΠΏΠΈΠ·Π°ΡΠΈΡ ΠΎΠ±ΡΡΠ½ΠΎ ΠΏΡΠΈΡΡΡΠ° Π½ΠΈΠ·ΠΊΠΎΡΡΠΎΠ²Π½Π΅Π²ΡΠΌ (ΡΠ·ΡΠΊ Π°ΡΡΠ΅ΠΌΠ±Π»Π΅ΡΠ°, Forth) ΠΈ ΡΠ·ΠΎΡΠ΅ΡΠΈΡΠ΅ΡΠΊΠΈΠΌ (Brainfuck, HQ9, Piet) ΡΠ·ΡΠΊΠ°ΠΌ. ΠΠ΄Π½Π°ΠΊΠΎ ΠΈ Ρ Π½Π΅Π΅, Π½Π°ΡΡΠ΄Ρ Ρ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΊΠ°ΠΌΠΈ, Π΅ΡΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π°.
ΠΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π°
ΠΠ΅Π΄ΠΎΡΡΠ°ΡΠΊΠΈ
Π‘ΠΈΠ»ΡΠ½Π°Ρ Π±Π΅Π·ΡΠΈΠΏΠΎΠ²Π°Ρ ΡΠΈΠΏΠΈΠ·Π°ΡΠΈΡ?
ΠΠ°, ΡΠ°ΠΊΠΎΠ΅ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ Π² ΡΠ·ΡΠΊΠ΅ Π°ΡΡΠ΅ΠΌΠ±Π»Π΅ΡΠ° (Π΄Π»Ρ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ Ρ 86/Ρ 86-64, Π΄ΡΡΠ³ΠΈΡ Π½Π΅ Π·Π½Π°Ρ) Π½Π΅Π»ΡΠ·Ρ Π°ΡΡΠ΅ΠΌΠ±Π»ΠΈΡΠΎΠ²Π°ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, Π΅ΡΠ»ΠΈ Π²Ρ ΠΏΠΎΠΏΡΡΠ°Π΅ΡΠ΅ΡΡ Π·Π°Π³ΡΡΠ·ΠΈΡΡ Π² ΡΠ΅Π³ΠΈΡΡΡ cx (16 Π±ΠΈΡ) Π΄Π°Π½Π½ΡΠ΅ ΠΈΠ· ΡΠ΅Π³ΠΈΡΡΡΠ° rax (64 Π±ΠΈΡΠ°).
mov cx, eax ; ΠΎΡΠΈΠ±ΠΊΠ° Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π°ΡΡΠ΅ΠΌΠ±Π»ΠΈΡΠΎΠ²Π°Π½ΠΈΡ
Π’Π°ΠΊ ΠΏΠΎΠ»ΡΡΠ°Π΅ΡΡΡ, ΡΡΠΎ Π² Π°ΡΡΠ΅ΠΌΠ»Π΅ΡΠ΅ Π²ΡΠ΅-ΡΠ°ΠΊΠΈ Π΅ΡΡΡ ΡΠΈΠΏΠΈΠ·Π°ΡΠΈΡ? Π― ΡΡΠΈΡΠ°Ρ, ΡΡΠΎ ΡΡΠΈΡ ΠΏΡΠΎΠ²Π΅ΡΠΎΠΊ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ. Π ΠΠ°ΡΠ΅ ΠΌΠ½Π΅Π½ΠΈΠ΅, ΠΊΠΎΠ½Π΅ΡΠ½ΠΎ, Π·Π°Π²ΠΈΡΠΈΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΡ ΠΠ°Ρ.
Π‘ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠ°Ρ ΠΈ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠ°Ρ ΡΠΈΠΏΠΈΠ·Π°ΡΠΈΠΈ
ΠΠ»Π°Π²Π½ΠΎΠ΅, ΡΡΠΎ ΠΎΡΠ»ΠΈΡΠ°Π΅Ρ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΡΡ (static) ΡΠΈΠΏΠΈΠ·Π°ΡΠΈΡ ΠΎΡ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΎΠΉ (dynamic) ΡΠΎ, ΡΡΠΎ Π²ΡΠ΅ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΡΠΈΠΏΠΎΠ² Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ Π½Π° ΡΡΠ°ΠΏΠ΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ, Π° Π½Π΅ ΡΡΠ°ΠΏΠ΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ.
ΠΠ΅ΠΊΠΎΡΠΎΡΡΠΌ Π»ΡΠ΄ΡΠΌ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠΊΠ°Π·Π°ΡΡΡΡ, ΡΡΠΎ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠ°Ρ ΡΠΈΠΏΠΈΠ·Π°ΡΠΈΡ ΡΠ»ΠΈΡΠΊΠΎΠΌ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½Π° (Π½Π° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ ΡΠ°ΠΊ ΠΈ Π΅ΡΡΡ, Π½ΠΎ ΠΎΡ ΡΡΠΎΠ³ΠΎ Π΄Π°Π²Π½ΠΎ ΠΈΠ·Π±Π°Π²ΠΈΠ»ΠΈΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΠΌΠ΅ΡΠΎΠ΄ΠΈΠΊ). ΠΠ΅ΠΊΠΎΡΠΎΡΡΠΌ ΠΆΠ΅, ΡΡΠΎ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈ ΡΠΈΠΏΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΡΠ·ΡΠΊΠΈ β ΡΡΠΎ ΠΈΠ³ΡΠ° Ρ ΠΎΠ³Π½Π΅ΠΌ, Π½ΠΎ ΠΊΠ°ΠΊΠΈΠ΅ ΠΆΠ΅ ΡΠ΅ΡΡΡ ΠΈΡ Π²ΡΠ΄Π΅Π»ΡΡΡ? ΠΠ΅ΡΠΆΠ΅Π»ΠΈ ΠΎΠ±Π° Π²ΠΈΠ΄Π° ΠΈΠΌΠ΅ΡΡ ΡΠ°Π½ΡΡ Π½Π° ΡΡΡΠ΅ΡΡΠ²ΠΎΠ²Π°Π½ΠΈΠ΅? ΠΡΠ»ΠΈ Π½Π΅Ρ, ΡΠΎ ΠΏΠΎΡΠ΅ΠΌΡ ΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠ°ΠΊ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ, ΡΠ°ΠΊ ΠΈ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈ ΡΠΈΠΏΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΡΠ·ΡΠΊΠΎΠ²?
ΠΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π° ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΡΠΈΠΏΠΈΠ·Π°ΡΠΈΠΈ
ΠΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π° Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΎΠΉ ΡΠΈΠΏΠΈΠ·Π°ΡΠΈΠΈ
ΠΠ±ΠΎΠ±ΡΠ΅Π½Π½ΠΎΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅
Π₯ΠΎΡΠΎΡΠΎ, ΡΠ°ΠΌΡΠΉ Π²Π°ΠΆΠ½ΡΠΉ Π°ΡΠ³ΡΠΌΠ΅Π½Ρ Π·Π° Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΡΡ ΡΠΈΠΏΠΈΠ·Π°ΡΠΈΡ β ΡΠ΄ΠΎΠ±ΡΡΠ²ΠΎ ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ ΠΎΠ±ΠΎΠ±ΡΠ΅Π½Π½ΡΡ Π°Π»Π³ΠΎΡΠΈΡΠΌΠΎΠ². ΠΠ°Π²Π°ΠΉΡΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΠΈΠΌ ΡΠ΅Π±Π΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ β Π½Π°ΠΌ Π½ΡΠΆΠ½Π° ΡΡΠ½ΠΊΡΠΈΡ ΠΏΠΎΠΈΡΠΊΠ° ΠΏΠΎ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΠΌ ΠΌΠ°ΡΡΠΈΠ²Π°ΠΌ (ΠΈΠ»ΠΈ ΡΠΏΠΈΡΠΊΠ°ΠΌ) β ΠΏΠΎ ΠΌΠ°ΡΡΠΈΠ²Ρ ΡΠ΅Π»ΡΡ ΡΠΈΡΠ΅Π», ΠΏΠΎ ΠΌΠ°ΡΡΠΈΠ²Ρ Π²Π΅ΡΠ΅ΡΡΠ²Π΅Π½Π½ΡΡ ΠΈ ΠΌΠ°ΡΡΠΈΠ²Ρ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ².
ΠΠ°ΠΊ ΠΆΠ΅ ΠΌΡ Π±ΡΠ΄Π΅ΠΌ Π΅Π΅ ΡΠ΅ΡΠ°ΡΡ? Π Π΅ΡΠΈΠΌ Π΅Π΅ Π½Π° 3-Π΅Ρ ΡΠ°Π·Π½ΡΡ ΡΠ·ΡΠΊΠ°Ρ : ΠΎΠ΄Π½ΠΎΠΌ Ρ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΎΠΉ ΡΠΈΠΏΠΈΠ·Π°ΡΠΈΠ΅ΠΉ ΠΈ Π΄Π²ΡΡ ΡΠΎ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΉ.
ΠΠ»Π³ΠΎΡΠΈΡΠΌ ΠΏΠΎΠΈΡΠΊΠ° Ρ Π²ΠΎΠ·ΡΠΌΡ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΠΏΡΠΎΡΡΠ΅ΠΉΡΠΈΡ β ΠΏΠ΅ΡΠ΅Π±ΠΎΡ. Π€ΡΠ½ΠΊΡΠΈΡ Π±ΡΠ΄Π΅Ρ ΠΏΠΎΠ»ΡΡΠ°ΡΡ ΠΈΡΠΊΠΎΠΌΡΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ, ΡΠ°ΠΌ ΠΌΠ°ΡΡΠΈΠ² (ΠΈΠ»ΠΈ ΡΠΏΠΈΡΠΎΠΊ) ΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡ ΠΈΠ½Π΄Π΅ΠΊΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°, ΠΈΠ»ΠΈ, Π΅ΡΠ»ΠΈ ΡΠ»Π΅ΠΌΠ΅Π½Ρ Π½Π΅ Π½Π°ΠΉΠ΄Π΅Π½ β (-1).
ΠΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ (Python):
ΠΠ°ΠΊ Π²ΠΈΠ΄ΠΈΡΠ΅, Π²ΡΠ΅ ΠΏΡΠΎΡΡΠΎ ΠΈ Π½ΠΈΠΊΠ°ΠΊΠΈΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌ Ρ ΡΠ΅ΠΌ, ΡΡΠΎ ΡΠΏΠΈΡΠΎΠΊ ΠΌΠΎΠΆΠ΅Ρ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ Ρ ΠΎΡΡ ΡΠΈΡΠ»Π°, Ρ ΠΎΡΡ ΡΠΏΠΈΡΠΊΠΈ, Ρ ΠΎΡΡ Π΄ΡΡΠ³ΠΈΠ΅ ΠΌΠ°ΡΡΠΈΠ²Ρ Π½Π΅Ρ. ΠΡΠ΅Π½Ρ Ρ ΠΎΡΠΎΡΠΎ. ΠΠ°Π²Π°ΠΉΡΠ΅ ΠΏΠΎΠΉΠ΄Π΅ΠΌ Π΄Π°Π»ΡΡΠ΅ β ΡΠ΅ΡΠΈΠΌ ΡΡΡ-ΠΆΠ΅ Π·Π°Π΄Π°ΡΡ Π½Π° Π‘ΠΈ!
Π‘ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ (Π‘ΠΈ):
ΠΡ, ΠΊΠ°ΠΆΠ΄Π°Ρ ΡΡΠ½ΠΊΡΠΈΡ Π² ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΡΡΠΈ ΠΏΠΎΡ ΠΎΠΆΠ° Π½Π° Π²Π΅ΡΡΠΈΡ ΠΈΠ· Python, Π½ΠΎ ΠΏΠΎΡΠ΅ΠΌΡ ΠΈΡ ΡΡΠΈ? ΠΠ΅ΡΠΆΠ΅Π»ΠΈ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΡΠΎΠΈΠ³ΡΠ°Π»ΠΎ?
Π Π΄Π°, ΠΈ Π½Π΅Ρ. ΠΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΌΠ΅ΡΠΎΠ΄ΠΈΠΊ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΠΎΠ΄Π½Ρ ΠΈΠ· ΠΊΠΎΡΠΎΡΡΡ ΠΌΡ ΡΠ΅ΠΉΡΠ°Ρ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ. ΠΠ½Π° Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ ΠΎΠ±ΠΎΠ±ΡΠ΅Π½Π½ΠΎΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ ΡΠ·ΡΠΊ C++ Π΅Π΅ Π½Π΅ΠΏΠ»ΠΎΡ ΠΎ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ. ΠΠ°Π²Π°ΠΉΡΠ΅ ΠΏΠΎΡΠΌΠΎΡΡΠΈΠΌ Π½Π° Π½ΠΎΠ²ΡΡ Π²Π΅ΡΡΠΈΡ:
Π‘ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ (ΠΎΠ±ΠΎΠ±ΡΠ΅Π½Π½ΠΎΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅, C++):
Π₯ΠΎΡΠΎΡΠΎ! ΠΡΠΎ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ Π½Π΅ ΡΠΈΠ»ΡΠ½ΠΎ ΡΠ»ΠΎΠΆΠ½Π΅Π΅ ΡΠ΅ΠΌ Π²Π΅ΡΡΠΈΡ Π½Π° Python ΠΈ ΠΏΡΠΈ ΡΡΠΎΠΌ Π½Π΅ ΠΏΡΠΈΡΠ»ΠΎΡΡ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΈΡΠ°ΡΡ. ΠΠ΄ΠΎΠ±Π°Π²ΠΎΠΊ ΠΌΡ ΠΏΠΎΠ»ΡΡΠΈΠ»ΠΈ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Π΄Π»Ρ Π²ΡΠ΅Ρ ΠΌΠ°ΡΡΠΈΠ²ΠΎΠ², Π° Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ 3-Π΅Ρ , Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΡ Π΄Π»Ρ ΡΠ΅ΡΠ΅Π½ΠΈΡ Π·Π°Π΄Π°ΡΠΈ!
ΠΡΠ° Π²Π΅ΡΡΠΈΡ ΠΏΠΎΡ ΠΎΠΆΠ΅ ΠΈΠΌΠ΅Π½Π½ΠΎ ΡΠΎ, ΡΡΠΎ Π½ΡΠΆΠ½ΠΎ β ΠΌΡ ΠΏΠΎΠ»ΡΡΠ°Π΅ΠΌ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ ΠΏΠ»ΡΡΡ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΡΠΈΠΏΠΈΠ·Π°ΡΠΈΠΈ ΠΈ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠ»ΡΡΡ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΎΠΉ.
ΠΠ΄ΠΎΡΠΎΠ²ΠΎ, ΡΡΠΎ ΡΡΠΎ Π²ΠΎΠΎΠ±ΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π½ΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π΅ΡΠ΅ Π»ΡΡΡΠ΅. ΠΠΎ-ΠΏΠ΅ΡΠ²ΡΡ ΠΎΠ±ΠΎΠ±ΡΠ΅Π½Π½ΠΎΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΠ΄ΠΎΠ±Π½Π΅Π΅ ΠΈ ΠΊΡΠ°ΡΠΈΠ²Π΅Π΅ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ Π² ΡΠ·ΡΠΊΠ΅ Haskell). ΠΠΎ-Π²ΡΠΎΡΡΡ ΠΏΠΎΠΌΠΈΠΌΠΎ ΠΎΠ±ΠΎΠ±ΡΠ΅Π½Π½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΡΡ ΠΏΠΎΠ»ΠΈΠΌΠΎΡΡΠΈΠ·ΠΌ (ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ Π±ΡΠ΄Π΅Ρ Ρ ΡΠΆΠ΅), ΠΏΠ΅ΡΠ΅Π³ΡΡΠ·ΠΊΡ ΡΡΠ½ΠΊΡΠΈΠΉ (Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½ΠΎ) ΠΈΠ»ΠΈ ΠΌΠ°ΠΊΡΠΎΡΡ.
Π‘ΡΠ°ΡΠΈΠΊΠ° Π² Π΄ΠΈΠ½Π°ΠΌΠΈΠΊΠ΅
Π’Π°ΠΊΠΆΠ΅ Π½ΡΠΆΠ½ΠΎ ΡΠΏΠΎΠΌΡΠ½ΡΡΡ, ΡΡΠΎ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΠ·ΡΠΊΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΡΡ ΡΠΈΠΏΠΈΠ·Π°ΡΠΈΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ:
Π‘ΠΈΠ»ΡΠ½Π°Ρ ΠΈ ΡΠ»Π°Π±Π°Ρ ΡΠΈΠΏΠΈΠ·Π°ΡΠΈΠΈ
Π―Π·ΡΠΊΠΈ Ρ ΡΠΈΠ»ΡΠ½ΠΎΠΉ ΡΠΈΠΏΠΈΠ·Π°ΡΠΈΠ΅ΠΉ Π½Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ ΡΠΌΠ΅ΡΠΈΠ²Π°ΡΡ ΡΡΡΠ½ΠΎΡΡΠΈ ΡΠ°Π·Π½ΡΡ ΡΠΈΠΏΠΎΠ² Π² Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡΡ ΠΈ Π½Π΅ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ Π½ΠΈΠΊΠ°ΠΊΠΈΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠΉ. Π’Π°ΠΊΠΆΠ΅ ΠΈΡ Π½Π°Π·ΡΠ²Π°ΡΡ Β«ΡΠ·ΡΠΊΠΈ Ρ ΡΡΡΠΎΠ³ΠΎΠΉ ΡΠΈΠΏΠΈΠ·Π°ΡΠΈΠ΅ΠΉΒ». ΠΠ½Π³Π»ΠΈΠΉΡΠΊΠΈΠΉ ΡΠ΅ΡΠΌΠΈΠ½ Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ β strong typing.
Π‘Π»Π°Π±ΠΎ ΡΠΈΠΏΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΡΠ·ΡΠΊΠΈ, Π½Π°ΠΎΠ±ΠΎΡΠΎΡ Π²ΡΡΡΠ΅ΡΠΊΠΈ ΡΠΏΠΎΡΠΎΠ±ΡΡΠ²ΡΡΡ, ΡΡΠΎΠ±Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡ ΡΠΌΠ΅ΡΠΈΠ²Π°Π» ΡΠ°Π·Π½ΡΠ΅ ΡΠΈΠΏΡ Π² ΠΎΠ΄Π½ΠΎΠΌ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠΈ, ΠΏΡΠΈΡΠ΅ΠΌ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ ΡΠ°ΠΌ ΠΏΡΠΈΠ²Π΅Π΄Π΅Ρ Π²ΡΠ΅ ΠΊ Π΅Π΄ΠΈΠ½ΠΎΠΌΡ ΡΠΈΠΏΡ. Π’Π°ΠΊΠΆΠ΅ ΠΈΡ Π½Π°Π·ΡΠ²Π°ΡΡ Β«ΡΠ·ΡΠΊΠΈ Ρ Π½Π΅ΡΡΡΠΎΠ³ΠΎΠΉ ΡΠΈΠΏΠΈΠ·Π°ΡΠΈΠ΅ΠΉΒ». ΠΠ½Π³Π»ΠΈΠΉΡΠΊΠΈΠΉ ΡΠ΅ΡΠΌΠΈΠ½ Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ β weak typing.
Π‘Π»Π°Π±ΡΡ ΡΠΈΠΏΠΈΠ·Π°ΡΠΈΡ ΡΠ°ΡΡΠΎ ΠΏΡΡΠ°ΡΡ Ρ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΎΠΉ, ΡΡΠΎ ΡΠΎΠ²Π΅ΡΡΠ΅Π½Π½ΠΎ Π½Π΅Π²Π΅ΡΠ½ΠΎ. ΠΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈ ΡΠΈΠΏΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΡΠ·ΡΠΊ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΈ ΡΠ»Π°Π±ΠΎ ΠΈ ΡΠΈΠ»ΡΠ½ΠΎ ΡΠΈΠΏΠΈΠ·ΠΈΡΠΎΠ²Π°Π½.
ΠΠ΄Π½Π°ΠΊΠΎ ΠΌΠ°Π»ΠΎ, ΠΊΡΠΎ ΠΏΡΠΈΠ΄Π°Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΡΡΠΎΠ³ΠΎΡΡΠΈ ΡΠΈΠΏΠΈΠ·Π°ΡΠΈΠΈ. Π§Π°ΡΡΠΎ Π·Π°ΡΠ²Π»ΡΡΡ, ΡΡΠΎ Π΅ΡΠ»ΠΈ ΡΠ·ΡΠΊ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΡΠΈΠΏΠΈΠ·ΠΈΡΠΎΠ²Π°Π½, ΡΠΎ ΠΡ ΡΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΎΡΠ»ΠΎΠ²ΠΈΡΡ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΠΏΠΎΡΠ΅Π½ΡΠΈΠ°Π»ΡΠ½ΡΡ ΠΎΡΠΈΠ±ΠΎΠΊ ΠΏΡΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ. ΠΠ½ΠΈ ΠΠ°ΠΌ Π²ΡΡΡ!
Π―Π·ΡΠΊ ΠΏΡΠΈ ΡΡΠΎΠΌ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΈΠΌΠ΅ΡΡ Π΅ΡΠ΅ ΠΈ ΡΠΈΠ»ΡΠ½ΡΡ ΡΠΈΠΏΠΈΠ·Π°ΡΠΈΡ. Π ΠΏΡΠ°Π²Π΄Π°, Π΅ΡΠ»ΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ Π²ΠΌΠ΅ΡΡΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ΅ Π±ΡΠ΄Π΅Ρ ΠΏΡΠΎΡΡΠΎ ΠΏΡΠΈΠ±Π°Π²Π»ΡΡΡ ΡΡΡΠΎΠΊΡ ΠΊ ΡΠΈΡΠ»Ρ, ΠΈΠ»ΠΈ ΡΡΠΎ Π΅ΡΠ΅ Ρ ΡΠΆΠ΅, Π²ΡΡΡΠ΅Ρ ΠΈΠ· ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΌΠ°ΡΡΠΈΠ²Π° Π΄ΡΡΠ³ΠΎΠΉ, ΠΊΠ°ΠΊΠΎΠΉ Π½Π°ΠΌ ΡΠΎΠ»ΠΊ, ΡΡΠΎ Π²ΡΠ΅ Β«ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈΒ» ΡΠΈΠΏΠΎΠ² Π±ΡΠ΄ΡΡ Π½Π° ΡΡΠ°ΠΏΠ΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ? ΠΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ β ΡΠ»Π°Π±Π°Ρ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠ°Ρ ΡΠΈΠΏΠΈΠ·Π°ΡΠΈΡ Π΅ΡΠ΅ Ρ ΡΠΆΠ΅, ΡΠ΅ΠΌ ΡΠΈΠ»ΡΠ½Π°Ρ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠ°Ρ! (ΠΡ, ΡΡΠΎ ΠΌΠΎΠ΅ ΠΌΠ½Π΅Π½ΠΈΠ΅)
Π’Π°ΠΊ ΡΡΠΎ-ΠΆΠ΅ Ρ ΡΠ»Π°Π±ΠΎΠΉ ΡΠΈΠΏΠΈΠ·Π°ΡΠΈΠΈ Π²ΠΎΠΎΠ±ΡΠ΅ Π½Π΅Ρ ΠΏΠ»ΡΡΠΎΠ²? ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΡΠ°ΠΊ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ, ΠΎΠ΄Π½Π°ΠΊΠΎ Π½Π΅ΡΠΌΠΎΡΡΡ Π½Π° ΡΠΎ, ΡΡΠΎ Ρ ΡΡΡΠΉ ΡΡΠΎΡΠΎΠ½Π½ΠΈΠΊ ΡΠΈΠ»ΡΠ½ΠΎΠΉ ΡΠΈΠΏΠΈΠ·Π°ΡΠΈΠΈ, Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠΎΠ³Π»Π°ΡΠΈΡΡΡΡ, ΡΡΠΎ Ρ ΡΠ»Π°Π±ΠΎΠΉ ΡΠΎΠΆΠ΅ Π΅ΡΡΡ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π°.
Π₯ΠΎΡΠΈΡΠ΅ ΡΠ·Π½Π°ΡΡ ΠΊΠ°ΠΊΠΈΠ΅?
ΠΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π° ΡΠΈΠ»ΡΠ½ΠΎΠΉ ΡΠΈΠΏΠΈΠ·Π°ΡΠΈΠΈ
ΠΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π° ΡΠ»Π°Π±ΠΎΠΉ ΡΠΈΠΏΠΈΠ·Π°ΡΠΈΠΈ
ΠΠΊΠ°Π·ΡΠ²Π°Π΅ΡΡΡ Π΅ΡΡΡ ΠΈ Π΄Π°ΠΆΠ΅ Π΄Π²Π°.
ΠΠ΅ΡΠ²Π½ΠΎΠ΅ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΡΠΈΠΏΠΎΠ², Π² ΠΎΠ΄Π½ΠΎΠ·Π½Π°ΡΠ½ΡΡ ΡΠΈΡΡΠ°ΡΠΈΡΡ ΠΈ Π±Π΅Π· ΠΏΠΎΡΠ΅ΡΡ Π΄Π°Π½Π½ΡΡ
Π£Ρ β¦ ΠΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ Π΄Π»ΠΈΠ½Π½ΡΠΉ ΠΏΡΠ½ΠΊΡ. ΠΠ°Π²Π°ΠΉΡΠ΅ Ρ Π±ΡΠ΄Ρ Π΄Π°Π»ΡΡΠ΅ ΡΠΎΠΊΡΠ°ΡΠ°ΡΡ Π΅Π³ΠΎ Π΄ΠΎ Β«ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½Π½ΠΎΠ΅ Π½Π΅ΡΠ²Π½ΠΎΠ΅ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅Β» Π’Π°ΠΊ ΡΡΠΎ ΠΆΠ΅ Π·Π½Π°ΡΠΈΡ ΠΎΠ΄Π½ΠΎΠ·Π½Π°ΡΠ½Π°Ρ ΡΠΈΡΡΠ°ΡΠΈΡ ΠΈ ΠΏΠΎΡΠ΅ΡΠΈ Π΄Π°Π½Π½ΡΡ ?
ΠΠ΄Π½ΠΎΠ·Π½Π°ΡΠ½Π°Ρ ΡΠΈΡΡΠ°ΡΠΈΡ, ΡΡΠΎ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈΠ»ΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ Π² ΠΊΠΎΡΠΎΡΠΎΠΉ ΡΡΡΠ½ΠΎΡΡΡ ΡΡΠ°Π·Ρ ΠΏΠΎΠ½ΡΡΠ½Π°. ΠΠΎΡ Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ ΡΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π΄Π²ΡΡ ΡΠΈΡΠ΅Π» β ΠΎΠ΄Π½ΠΎΠ·Π½Π°ΡΠ½Π°Ρ ΡΠΈΡΡΠ°ΡΠΈΡ. Π ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠΈΡΠ»Π° Π² ΠΌΠ°ΡΡΠΈΠ² β Π½Π΅Ρ (Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°ΡΡΡΡ ΠΌΠ°ΡΡΠΈΠ² ΠΈΠ· ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΌΠ°ΡΡΠΈΠ², Ρ ΡΠ°ΠΊΠΎΠΉ Π΄Π»ΠΈΠ½Π½ΠΎΠΉ, Π·Π°ΠΏΠΎΠ»Π½Π΅Π½Π½ΡΠΉ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΠΌΠΈ ΠΏΠΎ-ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ, Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΡΠΈΡΠ»ΠΎ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΠ΅ΡΡΡ Π² ΡΡΡΠΎΠΊΡ, Π° Π·Π°ΡΠ΅ΠΌ Π² ΠΌΠ°ΡΡΠΈΠ² ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ²).
ΠΠΎΡΠ΅ΡΡ Π΄Π°Π½Π½ΡΡ ΡΡΠΎ Π΅ΡΠ΅ ΠΏΡΠΎΡΠ΅. ΠΡΠ»ΠΈ ΠΌΡ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΠ΅ΠΌ Π²Π΅ΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎΠ΅ ΡΠΈΡΠ»ΠΎ 3.5 Π² ΡΠ΅Π»ΠΎΠ΅ β ΠΌΡ ΠΏΠΎΡΠ΅ΡΡΠ΅ΠΌ ΡΠ°ΡΡΡ Π΄Π°Π½Π½ΡΡ (Π½Π° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ ΡΡΠ° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ Π΅ΡΠ΅ ΠΈ Π½Π΅ΠΎΠ΄Π½ΠΎΠ·Π½Π°ΡΠ½Π°Ρ β ΠΊΠ°ΠΊ Π±ΡΠ΄Π΅Ρ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΡΡΡ ΠΎΠΊΡΡΠ³Π»Π΅Π½ΠΈΠ΅? Π Π±ΠΎΠ»ΡΡΡΡ ΡΡΠΎΡΠΎΠ½Ρ? Π ΠΌΠ΅Π½ΡΡΡΡ? ΠΡΠ±ΡΠ°ΡΡΠ²Π°Π½ΠΈΠ΅ Π΄ΡΠΎΠ±Π½ΠΎΠΉ ΡΠ°ΡΡΠΈ?).
ΠΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ Π² Π½Π΅ΠΎΠ΄Π½ΠΎΠ·Π½Π°ΡΠ½ΡΡ ΡΠΈΡΡΠ°ΡΠΈΡΡ ΠΈ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ Ρ ΠΏΠΎΡΠ΅ΡΠ΅ΠΉ Π΄Π°Π½Π½ΡΡ β ΡΡΠΎ ΠΎΡΠ΅Π½Ρ, ΠΎΡΠ΅Π½Ρ ΠΏΠ»ΠΎΡ ΠΎ. ΠΠΈΡΠ΅Π³ΠΎ Ρ ΡΠΆΠ΅ ΡΡΠΎΠ³ΠΎ Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ Π½Π΅Ρ.
ΠΡΠ»ΠΈ Π²Ρ ΠΌΠ½Π΅ Π½Π΅ Π²Π΅ΡΠΈΡΠ΅, ΠΈΠ·ΡΡΠΈΡΠ΅ ΡΠ·ΡΠΊ PL/I ΠΈΠ»ΠΈ Π΄Π°ΠΆΠ΅ ΠΏΡΠΎΡΡΠΎ ΠΏΠΎΠΈΡΠΈΡΠ΅ Π΅Π³ΠΎ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ. Π Π½Π΅ΠΌ Π΅ΡΡΡ ΠΏΡΠ°Π²ΠΈΠ»Π° ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ ΠΌΠ΅ΠΆΠ΄Ρ ΠΠ‘ΠΠΠ ΡΠΈΠΏΠ°ΠΌΠΈ Π΄Π°Π½Π½ΡΡ ! ΠΡΠΎ ΠΏΡΠΎΡΡΠΎ Π°Π΄!
ΠΠ°Π΄Π½ΠΎ, Π΄Π°Π²Π°ΠΉΡΠ΅ Π²ΡΠΏΠΎΠΌΠ½ΠΈΠΌ ΠΏΡΠΎ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½Π½ΠΎΠ΅ Π½Π΅ΡΠ²Π½ΠΎΠ΅ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅. ΠΡΡΡ Π»ΠΈ ΡΠ°ΠΊΠΈΠ΅ ΡΠ·ΡΠΊΠΈ? ΠΠ°, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ Π² Pascal ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°ΡΡ ΡΠ΅Π»ΠΎΠ΅ ΡΠΈΡΠ»ΠΎ Π² Π²Π΅ΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎΠ΅, Π½ΠΎ Π½Π΅ Π½Π°ΠΎΠ±ΠΎΡΠΎΡ. Π’Π°ΠΊΠΆΠ΅ ΠΏΠΎΡ ΠΎΠΆΠΈΠ΅ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΡ Π΅ΡΡΡ Π² C#, Groovy ΠΈ Common Lisp.
ΠΠ°Π΄Π½ΠΎ, Ρ Π³ΠΎΠ²ΠΎΡΠΈΠ», ΡΡΠΎ Π΅ΡΡΡ Π΅ΡΠ΅ ΡΠΏΠΎΡΠΎΠ± ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΏΠ°ΡΡ ΠΏΠ»ΡΡΠΎΠ² ΡΠ»Π°Π±ΠΎΠΉ ΡΠΈΠΏΠΈΠ·Π°ΡΠΈΠΈ Π² ΡΠΈΠ»ΡΠ½ΠΎΠΌ ΡΠ·ΡΠΊΠ΅. Π Π΄Π°, ΠΎΠ½ Π΅ΡΡΡ ΠΈ Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ ΠΏΠΎΠ»ΠΈΠΌΠΎΡΡΠΈΠ·ΠΌ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠΎΠ².
Π― ΠΏΠΎΡΡΠ½Ρ Π΅Π³ΠΎ Π½Π° ΠΏΡΠΈΠΌΠ΅ΡΠ΅ Π·Π°ΠΌΠ΅ΡΠ°ΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠ·ΡΠΊΠ° Haskell.
ΠΠΎΠ»ΠΈΠΌΠΎΡΡΠ½ΡΠ΅ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΡ ΠΏΠΎΡΠ²ΠΈΠ»ΠΈΡΡ Π² ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ Π½Π°Π±Π»ΡΠ΄Π΅Π½ΠΈΡ, ΡΡΠΎ ΡΠ°ΡΠ΅ Π²ΡΠ΅Π³ΠΎ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΡΠ΅ Π½Π΅ΡΠ²Π½ΡΠ΅ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ Π½ΡΠΆΠ½Ρ ΠΏΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΡΠΈΡΠ»ΠΎΠ²ΡΡ Π»ΠΈΡΠ΅ΡΠ°Π»ΠΎΠ².
Π ΡΡΠΎ ΡΠ΄Π΅Π»Π°Π½ΠΎ Π² Haskell, Π±Π»Π°Π³ΠΎΠ΄Π°ΡΡ ΡΠΎΠΌΡ, ΡΡΠΎ Ρ Π»ΠΈΡΠ΅ΡΠ°Π»Π° 1 Π½Π΅Ρ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠ³ΠΎ ΡΠΈΠΏΠ°. ΠΡΠΎ Π½ΠΈ ΡΠ΅Π»ΠΎΠ΅, Π½ΠΈ Π²Π΅ΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎΠ΅, Π½ΠΈ ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡΠ½ΠΎΠ΅. ΠΡΠΎ ΠΆΠ΅ ΠΏΡΠΎΡΡΠΎ ΡΠΈΡΠ»ΠΎ!
ΠΠΎΠ½Π΅ΡΠ½ΠΎ ΡΠΏΠ°ΡΠ°Π΅Ρ ΡΡΠΎΡ ΠΏΡΠΈΠ΅ΠΌ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΡΠΌΠ΅ΡΠ°Π½Π½ΡΡ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠΉ Ρ ΡΠΈΡΠ»ΠΎΠ²ΡΠΌΠΈ Π»ΠΈΡΠ΅ΡΠ°Π»Π°ΠΌΠΈ, Π° ΡΡΠΎ Π»ΠΈΡΡ Π²Π΅ΡΡ ΡΡΠΊΠ° Π°ΠΉΡΠ±Π΅ΡΠ³Π°.
Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠ°Π·Π°ΡΡ, ΡΡΠΎ Π»ΡΡΡΠΈΠΌ Π²ΡΡ ΠΎΠ΄ΠΎΠΌ Π±ΡΠ΄Π΅Ρ Π±Π°Π»Π°Π½ΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π° Π³ΡΠ°Π½ΠΈ, ΠΌΠ΅ΠΆΠ΄Ρ ΡΠΈΠ»ΡΠ½ΠΎΠΉ ΠΈ ΡΠ»Π°Π±ΠΎΠΉ ΡΠΈΠΏΠΈΠ·Π°ΡΠΈΠ΅ΠΉ. ΠΠΎ ΠΏΠΎΠΊΠ° ΠΈΠ΄Π΅Π°Π»ΡΠ½ΡΠΉ Π±Π°Π»Π°Π½Ρ Π½Π΅ Π΄Π΅ΡΠΆΠΈΡ Π½ΠΈ ΠΎΠ΄ΠΈΠ½ ΡΠ·ΡΠΊ, ΠΏΠΎΡΡΠΎΠΌΡ Ρ Π±ΠΎΠ»ΡΡΠ΅ ΡΠΊΠ»ΠΎΠ½ΡΡΡΡ ΠΊ ΡΠΈΠ»ΡΠ½ΠΎ ΡΠΈΠΏΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΌ ΡΠ·ΡΠΊΠ°ΠΌ (ΡΠ°ΠΊΠΈΠΌ ΠΊΠ°ΠΊ Haskell, Java, C#, Python), Π° Π½Π΅ ΠΊ ΡΠ»Π°Π±ΠΎ ΡΠΈΠΏΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΌ (ΡΠ°ΠΊΠΈΠΌ ΠΊΠ°ΠΊ C, JavaScript, Lua, PHP).
ΠΠ°Π΄Π½ΠΎ, ΠΏΠΎΠΉΠ΄Π΅ΠΌ Π΄Π°Π»ΡΡΠ΅?
Π―Π²Π½Π°Ρ ΠΈ Π½Π΅ΡΠ²Π½Π°Ρ ΡΠΈΠΏΠΈΠ·Π°ΡΠΈΠΈ
Π―Π·ΡΠΊ Ρ ΡΠ²Π½ΠΎΠΉ ΡΠΈΠΏΠΈΠ·Π°ΡΠΈΠ΅ΠΉ ΠΏΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅Ρ, ΡΡΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ ΡΠΈΠΏΡ Π²ΡΠ΅Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΠΈ ΡΡΠ½ΠΊΡΠΈΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΠ±ΡΡΠ²Π»ΡΠ΅Ρ. ΠΠ½Π³Π»ΠΈΠΉΡΠΊΠΈΠΉ ΡΠ΅ΡΠΌΠΈΠ½ Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ β explicit typing.
Π―Π·ΡΠΊ Ρ Π½Π΅ΡΠ²Π½ΠΎΠΉ ΡΠΈΠΏΠΈΠ·Π°ΡΠΈΠ΅ΠΉ, Π½Π°ΠΏΡΠΎΡΠΈΠ², ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅Ρ ΠΠ°ΠΌ Π·Π°Π±ΡΡΡ ΠΎ ΡΠΈΠΏΠ°Ρ ΠΈ ΠΏΠ΅ΡΠ΅Π»ΠΎΠΆΠΈΡΡ Π·Π°Π΄Π°ΡΡ Π²ΡΠ²ΠΎΠ΄Π° ΡΠΈΠΏΠΎΠ² Π½Π° ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ ΠΈΠ»ΠΈ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡ. ΠΠ½Π³Π»ΠΈΠΉΡΠΊΠΈ ΡΠ΅ΡΠΌΠΈΠ½ Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ β implicit typing.
ΠΠΎ-Π½Π°ΡΠ°Π»Ρ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΅ΡΠΈΡΡ, ΡΡΠΎ Π½Π΅ΡΠ²Π½Π°Ρ ΡΠΈΠΏΠΈΠ·Π°ΡΠΈΡ ΡΠ°Π²Π½ΠΎΡΠΈΠ»ΡΠ½Π° Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΎΠΉ, Π° ΡΠ²Π½Π°Ρ β ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΉ, Π½ΠΎ Π΄Π°Π»ΡΡΠ΅ ΠΌΡ ΡΠ²ΠΈΠ΄ΠΈΠΌ, ΡΡΠΎ ΡΡΠΎ Π½Π΅ ΡΠ°ΠΊ.
ΠΡΡΡ Π»ΠΈ ΠΏΠ»ΡΡΡ Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π²ΠΈΠ΄Π°, ΠΈ ΠΎΠΏΡΡΡ ΠΆΠ΅, Π΅ΡΡΡ Π»ΠΈ ΠΈΡ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°ΡΠΈΠΈ ΠΈ Π΅ΡΡΡ Π»ΠΈ ΡΠ·ΡΠΊΠΈ Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΎΠΉ ΠΎΠ±ΠΎΠΈΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ²?
ΠΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π° ΡΠ²Π½ΠΎΠΉ ΡΠΈΠΏΠΈΠ·Π°ΡΠΈΠΈ
ΠΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π° Π½Π΅ΡΠ²Π½ΠΎΠΉ ΡΠΈΠΏΠΈΠ·Π°ΡΠΈΠΈ
Π―Π²Π½Π°Ρ ΡΠΈΠΏΠΈΠ·Π°ΡΠΈΡ ΠΏΠΎ-Π²ΡΠ±ΠΎΡΡ
ΠΡΡΡ ΡΠ·ΡΠΊΠΈ, Ρ Π½Π΅ΡΠ²Π½ΠΎΠΉ ΡΠΈΠΏΠΈΠ·Π°ΡΠΈΠ΅ΠΉ ΠΏΠΎ-ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΡ ΡΠΊΠ°Π·Π°ΡΡ ΡΠΈΠΏ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ ΠΏΡΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ. ΠΠ°ΡΡΠΎΡΡΠΈΠΉ ΡΠΈΠΏ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ ΡΡΠ°Π½ΡΠ»ΡΡΠΎΡ Π²ΡΠ²Π΅Π΄Π΅Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ. ΠΠ΄ΠΈΠ½ ΠΈΠ· ΡΠ°ΠΊΠΈΡ ΡΠ·ΡΠΊΠΎΠ² β Haskell, Π΄Π°Π²Π°ΠΉΡΠ΅ Ρ ΠΏΡΠΈΠ²Π΅Π΄Ρ ΠΏΡΠΎΡΡΠΎΠΉ ΠΏΡΠΈΠΌΠ΅Ρ, Π΄Π»Ρ Π½Π°Π³Π»ΡΠ΄Π½ΠΎΡΡΠΈ:
* Π‘ΠΏΠ°ΡΠΈΠ±ΠΎ int_index Π·Π° Π½Π°Ρ ΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅ ΠΎΡΠΈΠ±ΠΊΠΈ.
Π₯ΠΌ. ΠΠ°ΠΊ ΠΌΡ Π²ΠΈΠ΄ΠΈΠΌ, ΡΡΠΎ ΠΎΡΠ΅Π½Ρ ΠΊΡΠ°ΡΠΈΠ²ΠΎ ΠΈ ΠΊΠΎΡΠΎΡΠΊΠΎ. ΠΠ°ΠΏΠΈΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ Π²ΡΠ΅Π³ΠΎ 18 ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² Π½Π° ΠΎΠ΄Π½ΠΎΠΉ ΡΡΡΠΎΡΠΊΠ΅, Π²ΠΊΠ»ΡΡΠ°Ρ ΠΏΡΠΎΠ±Π΅Π»Ρ!
ΠΠ΄Π½Π°ΠΊΠΎ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ Π²ΡΠ²ΠΎΠ΄ ΡΠΈΠΏΠΎΠ² Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΡΠ»ΠΎΠΆΠ½Π°Ρ Π²Π΅ΡΡ, ΠΈ Π΄Π°ΠΆΠ΅ Π² ΡΠ°ΠΊΠΎΠΌ ΠΊΡΡΡΠΎΠΌ ΡΠ·ΡΠΊΠ΅ ΠΊΠ°ΠΊ Haskell, ΠΎΠ½ ΠΈΠ½ΠΎΠ³Π΄Π° Π½Π΅ ΡΠΏΡΠ°Π²Π»ΡΠ΅ΡΡΡ. (ΠΊΠ°ΠΊ ΠΏΡΠΈΠΌΠ΅Ρ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΈΠ²Π΅ΡΡΠΈ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠ½ΠΎΠΌΠΎΡΡΠΈΠ·ΠΌΠ°)
ΠΡΡΡ Π»ΠΈ ΡΠ·ΡΠΊΠΈ Ρ ΡΠ²Π½ΠΎΠΉ ΡΠΈΠΏΠΈΠ·Π°ΡΠΈΠ΅ΠΉ ΠΏΠΎ-ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΠΈ Π½Π΅ΡΠ²Π½ΠΎΠΉ ΠΏΠΎ-Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ? ΠΠΎΠ½
Π΅ΡΠ½ΠΎ.
ΠΠ΅ΡΠ²Π½Π°Ρ ΡΠΈΠΏΠΈΠ·Π°ΡΠΈΡ ΠΏΠΎ-Π²ΡΠ±ΠΎΡΡ
Π Π½ΠΎΠ²ΠΎΠΌ ΡΡΠ°Π½Π΄Π°ΡΡΠ΅ ΡΠ·ΡΠΊΠ° C++, Π½Π°Π·Π²Π°Π½Π½ΠΎΠΌ C++11 (ΡΠ°Π½Π΅Π΅ Π½Π°Π·ΡΠ²Π°Π»ΡΡ C++0x), Π±ΡΠ»ΠΎ Π²Π²Π΅Π΄Π΅Π½ΠΎ ΠΊΠ»ΡΡΠ΅Π²ΠΎΠ΅ ΡΠ»ΠΎΠ²ΠΎ auto, Π±Π»Π°Π³ΠΎΠ΄Π°ΡΡ ΠΊΠΎΡΠΎΡΠΎΠΌΡ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΡΡΠ°Π²ΠΈΡΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ Π²ΡΠ²Π΅ΡΡΠΈ ΡΠΈΠΏ, ΠΈΡΡ ΠΎΠ΄Ρ ΠΈΠ· ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ°:
ΠΠ΅ΠΏΠ»ΠΎΡ ΠΎ. ΠΠΎ Π·Π°ΠΏΠΈΡΡ ΡΠΎΠΊΡΠ°ΡΠΈΠ»Π°ΡΡ Π½Π΅ ΡΠΈΠ»ΡΠ½ΠΎ. ΠΠ°Π²Π°ΠΉΡΠ΅ ΠΏΠΎΡΠΌΠΎΡΡΠΈΠΌ ΠΏΡΠΈΠΌΠ΅Ρ Ρ ΠΈΡΠ΅ΡΠ°ΡΠΎΡΠ°ΠΌΠΈ (Π΅ΡΠ»ΠΈ Π½Π΅ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅ΡΠ΅, Π½Π΅ Π±ΠΎΠΉΡΠ΅ΡΡ, Π³Π»Π°Π²Π½ΠΎΠ΅ Π·Π°ΠΌΠ΅ΡΡΡΠ΅, ΡΡΠΎ Π·Π°ΠΏΠΈΡΡ Π±Π»Π°Π³ΠΎΠ΄Π°ΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΌΡ Π²ΡΠ²ΠΎΠ΄Ρ ΠΎΡΠ΅Π½Ρ ΡΠΈΠ»ΡΠ½ΠΎ ΡΠΎΠΊΡΠ°ΡΠ°Π΅ΡΡΡ):
Π£Ρ ΡΡ! ΠΠΎΡ ΡΡΠΎ ΡΠΎΠΊΡΠ°ΡΠ΅Π½ΠΈΠ΅. ΠΠ°Π΄Π½ΠΎ, Π½ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π»ΠΈ ΡΠ΄Π΅Π»Π°ΡΡ ΡΡΠΎ-Π½ΠΈΠ±ΡΠ΄Ρ Π² Π΄ΡΡ Π΅ Haskell, Π³Π΄Π΅ ΡΠΈΠΏ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΠΎΠ³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π±ΡΠ΄Π΅Ρ Π·Π°Π²ΠΈΡΠ΅ΡΡ ΠΎΡ ΡΠΈΠΏΠΎΠ² Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ²?
Π ΠΎΠΏΡΡΡ ΠΎΡΠ²Π΅Ρ Π΄Π°, Π±Π»Π°Π³ΠΎΠ΄Π°ΡΡ ΠΊΠ»ΡΡΠ΅Π²ΠΎΠΌΡ ΡΠ»ΠΎΠ²Ρ decltype Π² ΠΊΠΎΠΌΠ±ΠΈΠ½Π°ΡΠΈΠΈ Ρ auto:
ΠΠΎΠΆΠ΅Ρ ΠΏΠΎΠΊΠ°Π·Π°ΡΡΡΡ, ΡΡΠΎ ΡΡΠ° ΡΠΎΡΠΌΠ° Π·Π°ΠΏΠΈΡΠΈ Π½Π΅ ΡΠΈΠ»ΡΠ½ΠΎ Ρ ΠΎΡΠΎΡΠ°, Π½ΠΎ Π² ΠΊΠΎΠΌΠ±ΠΈΠ½Π°ΡΠΈΠΈ Ρ ΠΎΠ±ΠΎΠ±ΡΠ΅Π½Π½ΡΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ (templates / generics) Π½Π΅ΡΠ²Π½Π°Ρ ΡΠΈΠΏΠΈΠ·Π°ΡΠΈΡ ΠΈΠ»ΠΈ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ Π²ΡΠ²ΠΎΠ΄ ΡΠΈΠΏΠΎΠ² ΡΠ²ΠΎΡΡΡ ΡΡΠ΄Π΅ΡΠ°.
ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ·ΡΠΊΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΏΠΎ Π΄Π°Π½Π½ΠΎΠΉ ΠΊΠ»Π°ΡΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ
Π― ΠΏΡΠΈΠ²Π΅Π΄Ρ Π½Π΅Π±ΠΎΠ»ΡΡΠΎΠΉ ΡΠΏΠΈΡΠΎΠΊ ΠΈΠ· ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΡΡ ΡΠ·ΡΠΊΠΎΠ² ΠΈ Π½Π°ΠΏΠΈΡΡ ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ ΠΏΠΎΠ΄ΡΠ°Π·Π΄Π΅Π»ΡΡΡΡΡ ΠΏΠΎ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΠΈ βΡΠΈΠΏΠΈΠ·Π°ΡΠΈΠΉβ.
ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Ρ Π³Π΄Π΅-ΡΠΎ ΠΎΡΠΈΠ±ΡΡ, ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ Ρ CL, PHP ΠΈ Obj-C, Π΅ΡΠ»ΠΈ ΠΏΠΎ ΠΊΠ°ΠΊΠΎΠΌΡ-ΡΠΎ ΡΠ·ΡΠΊΡ Ρ ΠΠ°Ρ Π΄ΡΡΠ³ΠΎΠ΅ ΠΌΠ½Π΅Π½ΠΈΠ΅ β Π½Π°ΠΏΠΈΡΠΈΡΠ΅ Π² ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΡΡ .
ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅
ΠΠΊΠ΅ΠΉ. Π£ΠΆΠ΅ ΡΠΊΠΎΡΠΎ Π±ΡΠ΄Π΅Ρ ΡΠ²Π΅ΡΠ»ΠΎ ΠΈ Ρ ΡΡΠ²ΡΡΠ²ΡΡ, ΡΡΠΎ ΠΏΡΠΎ ΡΠΈΠΏΠΈΠ·Π°ΡΠΈΡ Π±ΠΎΠ»ΡΡΠ΅ Π½Π΅ΡΠ΅Π³ΠΎ ΡΠΊΠ°Π·Π°ΡΡ. ΠΠΉ ΠΊΠ°ΠΊ? Π’Π΅ΠΌΠ° Π±Π΅Π·Π΄ΠΎΠ½Π½Π°Ρ? ΠΡΠ΅Π½Ρ ΠΌΠ½ΠΎΠ³ΠΎ ΠΎΡΡΠ°Π»ΠΎΡΡ Π½Π΅Π΄ΠΎΡΠΊΠ°Π·Π°Π½ΠΎ? ΠΡΠΎΡΡ Π² ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ, ΠΏΠΎΠ΄Π΅Π»ΠΈΡΠ΅ΡΡ ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠ΅ΠΉ.
Π‘ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠ°Ρ ΠΈ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠ°Ρ ΡΠΈΠΏΠΈΠ·Π°ΡΠΈΡ
ΠΡΠ° ΡΡΠ°ΡΡΡ ΡΠ°ΡΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΠΎ ΡΠ°Π·Π½ΠΈΡΠ΅ ΠΌΠ΅ΠΆΠ΄Ρ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΡΠΈΠΏΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΌΠΈ ΠΈ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈ ΡΠΈΠΏΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΌΠΈ ΡΠ·ΡΠΊΠ°ΠΌΠΈ, ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°Π΅Ρ ΠΏΠΎΠ½ΡΡΠΈΡ «ΡΠΈΠ»ΡΠ½ΠΎΠΉ» ΠΈ «ΡΠ»Π°Π±ΠΎΠΉ» ΡΠΈΠΏΠΈΠ·Π°ΡΠΈΠΈ, ΠΈ ΡΡΠ°Π²Π½ΠΈΠ²Π°Π΅Ρ ΠΌΠΎΡΠ½ΠΎΡΡΡ ΡΠΈΡΡΠ΅ΠΌ ΡΠΈΠΏΠΈΠ·Π°ΡΠΈΠΈ Π² ΡΠ°Π·Π½ΡΡ ΡΠ·ΡΠΊΠ°Ρ . Π ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π΅ Π²ΡΠ΅ΠΌΡ Π½Π°Π±Π»ΡΠ΄Π°Π΅ΡΡΡ ΡΠ΅ΡΠΊΠΎΠ΅ Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅ Π² ΡΡΠΎΡΠΎΠ½Ρ Π±ΠΎΠ»Π΅Π΅ ΡΡΡΠΎΠ³ΠΈΡ ΠΈ ΠΌΠΎΡΠ½ΡΡ ΡΠΈΡΡΠ΅ΠΌ ΡΠΈΠΏΠΈΠ·Π°ΡΠΈΠΈ Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ, ΠΏΠΎΡΡΠΎΠΌΡ Π²Π°ΠΆΠ½ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°ΡΡ ΠΎ ΡΠ΅ΠΌ ΠΈΠ΄Π΅Ρ ΡΠ΅ΡΡ ΠΊΠΎΠ³Π΄Π° Π³ΠΎΠ²ΠΎΡΡΡ ΠΎ ΡΠΈΠΏΠ°Ρ ΠΈ ΡΠΈΠΏΠΈΠ·Π°ΡΠΈΠΈ.
Π’ΠΈΠΏ β ΡΡΠΎ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ. Π¦Π΅Π»ΠΎΠ΅ ΡΠΈΡΠ»ΠΎ ΠΌΠΎΠΆΠ΅Ρ ΠΎΠ±Π»Π°Π΄Π°ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡΠΌΠΈ 0, 1, 2, 3 ΠΈ ΡΠ°ΠΊ Π΄Π°Π»Π΅Π΅. ΠΡΠ»Π΅Π²ΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΈΡΡΠΈΠ½ΠΎΠΉ ΠΈΠ»ΠΈ Π»ΠΎΠΆΡΡ. ΠΠΎΠΆΠ½ΠΎ ΠΏΡΠΈΠ΄ΡΠΌΠ°ΡΡ ΡΠ²ΠΎΠΉ ΡΠΈΠΏ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠΈΠΏ «ΠΠ°ΠΉΠΡΡΡ», Π² ΠΊΠΎΡΠΎΡΠΎΠΌ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΡ «Π΄Π°ΠΉ» ΠΈ «5», ΠΈ Π±ΠΎΠ»ΡΡΠ΅ Π½ΠΈΡΠ΅Π³ΠΎ. ΠΡΠΎ Π½Π΅ ΡΡΡΠΎΠΊΠ° ΠΈ Π½Π΅ ΡΠΈΡΠ»ΠΎ, ΡΡΠΎ Π½ΠΎΠ²ΡΠΉ, ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΉ ΡΠΈΠΏ.
ΠΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈ ΡΠΈΠΏΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΡΠ·ΡΠΊΠΈ ΠΏΠΎΠΌΠ΅ΡΠ°ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΠΈΠΏΠ°ΠΌΠΈ: ΡΠ·ΡΠΊ Π·Π½Π°Π΅Ρ, ΡΡΠΎ 1 ΡΡΠΎ integer, 2 ΡΡΠΎ integer, Π½ΠΎ ΠΎΠ½ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ Π·Π½Π°ΡΡ, ΡΡΠΎ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ x Π²ΡΠ΅Π³Π΄Π° ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ integer.
Π‘ΡΠ΅Π΄Π° Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠ·ΡΠΊΠ° ΠΏΡΠΎΠ²Π΅ΡΡΠ΅Ρ ΡΡΠΈ ΠΌΠ΅ΡΠΊΠΈ Π² ΡΠ°Π·Π½ΡΠ΅ ΠΌΠΎΠΌΠ΅Π½ΡΡ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ. ΠΡΠ»ΠΈ ΠΌΡ ΠΏΠΎΠΏΡΠΎΠ±ΡΠ΅ΠΌ ΡΠ»ΠΎΠΆΠΈΡΡ Π΄Π²Π° Π·Π½Π°ΡΠ΅Π½ΠΈΡ, ΡΠΎ ΠΎΠ½Π° ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ, ΡΠ²Π»ΡΡΡΡΡ Π»ΠΈ ΠΎΠ½ΠΈ ΡΠΈΡΠ»Π°ΠΌΠΈ, ΡΡΡΠΎΠΊΠ°ΠΌΠΈ ΠΈΠ»ΠΈ ΠΌΠ°ΡΡΠΈΠ²Π°ΠΌΠΈ. ΠΠΎΡΠΎΠΌ ΠΎΠ½Π° ΡΠ»ΠΎΠΆΠΈΡ ΡΡΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΡ, ΡΠΊΠ»Π΅ΠΈΡ ΠΈΡ ΠΈΠ»ΠΈ Π²ΡΠ΄Π°ΡΡ ΠΎΡΠΈΠ±ΠΊΡ, Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΡΠΈΠΏΠ°.
Π‘ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΡΠΈΠΏΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΡΠ·ΡΠΊΠΈ
Π‘ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΠ·ΡΠΊΠΈ ΠΏΡΠΎΠ²Π΅ΡΡΡΡ ΡΠΈΠΏΡ Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅ Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ, Π΅ΡΠ΅ Π΄ΠΎ Π·Π°ΠΏΡΡΠΊΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ. ΠΡΠ±Π°Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°, Π² ΠΊΠΎΡΠΎΡΠΎΠΉ ΡΠΈΠΏΡ Π½Π°ΡΡΡΠ°ΡΡ ΠΏΡΠ°Π²ΠΈΠ»Π° ΡΠ·ΡΠΊΠ°, ΡΡΠΈΡΠ°Π΅ΡΡΡ Π½Π΅ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎΠΉ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΡΠ·ΡΠΊΠΎΠ² ΠΎΡΠΊΠ»ΠΎΠ½ΠΈΡ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ «a» + 1 (ΡΠ·ΡΠΊ Π‘ΠΈ β ΡΡΠΎ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΈΠ· ΡΡΠΎΠ³ΠΎ ΠΏΡΠ°Π²ΠΈΠ»Π°). ΠΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ Π·Π½Π°Π΅Ρ, ΡΡΠΎ «a» β ΡΡΠΎ ΡΡΡΠΎΠΊΠ°, Π° 1 β ΡΡΠΎ ΡΠ΅Π»ΠΎΠ΅ ΡΠΈΡΠ»ΠΎ, ΠΈ ΡΡΠΎ + ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΡΠΎΠ»ΡΠΊΠΎ ΠΊΠΎΠ³Π΄Π° Π»Π΅Π²Π°Ρ ΠΈ ΠΏΡΠ°Π²Π°Ρ ΡΠ°ΡΡΡ ΠΎΡΠ½ΠΎΡΡΡΡΡ ΠΊ ΠΎΠ΄Π½ΠΎΠΌΡ ΡΠΈΠΏΡ. Π’Π°ΠΊ ΡΡΠΎ Π΅ΠΌΡ Π½Π΅ Π½ΡΠΆΠ½ΠΎ Π·Π°ΠΏΡΡΠΊΠ°ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΡΡΠΎΠ±Ρ ΠΏΠΎΠ½ΡΡΡ, ΡΡΠΎ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°. ΠΠ°ΠΆΠ΄ΠΎΠ΅ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π² ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΡΠΈΠΏΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΌ ΡΠ·ΡΠΊΠ΅ ΠΎΡΠ½ΠΎΡΠΈΡΡΡ ΠΊ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΌΡ ΡΠΈΠΏΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ Π±Π΅Π· Π·Π°ΠΏΡΡΠΊΠ° ΠΊΠΎΠ΄Π°.
ΠΡΠΎ Π½Π΅ ΡΠΌΠ΅Π½ΡΡΠ°Π΅Ρ «ΡΡΠ°ΡΠΈΡΠ½ΠΎΡΡΡ» ΡΠΈΡΡΠ΅ΠΌΡ ΡΠΈΠΏΠΎΠ². Π‘ΠΈΡΡΠ΅ΠΌΠ° ΡΠΈΠΏΠΎΠ² Π² Haskell Π·Π½Π°ΠΌΠ΅Π½ΠΈΡΠ° ΡΠ²ΠΎΠ΅ΠΉ ΡΡΠ°ΡΠΈΡΠ½ΠΎΡΡΡΡ, ΡΡΡΠΎΠ³ΠΎΡΡΡΡ ΠΈ ΠΌΠΎΡΠ½ΠΎΡΡΡΡ, ΠΈ Π² ΠΏΠΎ Π²ΡΠ΅ΠΌ ΡΡΠΈΠΌ ΡΡΠΎΠ½ΡΠ°ΠΌ Haskell ΠΎΠΏΠ΅ΡΠ΅ΠΆΠ°Π΅Ρ Java.
ΠΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈ ΡΠΈΠΏΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΡΠ·ΡΠΊΠΈ
ΠΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈ ΡΠΈΠΏΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΡΠ·ΡΠΊΠΈ Π½Π΅ ΡΡΠ΅Π±ΡΡΡ ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ ΡΠΈΠΏ, Π½ΠΎ ΠΈ Π½Π΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ Π΅Π³ΠΎ ΡΠ°ΠΌΠΈ. Π’ΠΈΠΏΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ Π½Π΅ΠΈΠ·Π²Π΅ΡΡΠ½Ρ Π΄ΠΎ ΡΠΎΠ³ΠΎ ΠΌΠΎΠΌΠ΅Π½ΡΠ°, ΠΊΠΎΠ³Π΄Π° Ρ Π½ΠΈΡ Π΅ΡΡΡ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΏΡΠΈ Π·Π°ΠΏΡΡΠΊΠ΅. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΡΠ½ΠΊΡΠΈΡ Π² Python
ΠΌΠΎΠΆΠ΅Ρ ΡΠΊΠ»Π°Π΄ΡΠ²Π°ΡΡ Π΄Π²Π° ΡΠ΅Π»ΡΡ ΡΠΈΡΠ»Π°, ΡΠΊΠ»Π΅ΠΈΠ²Π°ΡΡ ΡΡΡΠΎΠΊΠΈ, ΡΠΏΠΈΡΠΊΠΈ ΠΈ ΡΠ°ΠΊ Π΄Π°Π»Π΅Π΅, ΠΈ ΠΌΡ Π½Π΅ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠΎΠ½ΡΡΡ, ΡΡΠΎ ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ, ΠΏΠΎΠΊΠ° Π½Π΅ Π·Π°ΠΏΡΡΡΠΈΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ. ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π² ΠΊΠ°ΠΊΠΎΠΉ-ΡΠΎ ΠΌΠΎΠΌΠ΅Π½Ρ ΡΡΠ½ΠΊΡΠΈΡ f Π²ΡΠ·ΠΎΠ²ΡΡ Ρ Π΄Π²ΡΠΌΡ ΡΡΡΠΎΠΊΠ°ΠΌΠΈ, ΠΈ Ρ Π΄Π²ΡΠΌΡ ΡΠΈΡΠ»Π°ΠΌΠΈ Π² Π΄ΡΡΠ³ΠΎΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ. Π ΡΠ°ΠΊΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ x ΠΈ y Π±ΡΠ΄ΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΠ°Π·Π½ΡΡ ΡΠΈΠΏΠΎΠ² Π² ΡΠ°Π·Π½ΠΎΠ΅ Π²ΡΠ΅ΠΌΡ. ΠΠΎΡΡΠΎΠΌΡ Π³ΠΎΠ²ΠΎΡΡΡ, ΡΡΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π² Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈΡ ΡΠ·ΡΠΊΠ°Ρ ΠΎΠ±Π»Π°Π΄Π°ΡΡ ΡΠΈΠΏΠΎΠΌ, Π½ΠΎ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ β Π½Π΅Ρ. ΠΠ½Π°ΡΠ΅Π½ΠΈΠ΅ 1 ΡΡΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎ integer, Π½ΠΎ x ΠΈ y ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΡΠ΅ΠΌ ΡΠ³ΠΎΠ΄Π½ΠΎ.
Π‘ΡΠ°Π²Π½Π΅Π½ΠΈΠ΅
ΠΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈΡ ΡΠ·ΡΠΊΠΎΠ² Π²ΡΠ΄Π°Π΄ΡΡ ΠΎΡΠΈΠ±ΠΊΡ, Π΅ΡΠ»ΠΈ ΡΠΈΠΏΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π½Π΅ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎ (JavaScript β ΠΈΠ·Π²Π΅ΡΡΠ½ΠΎΠ΅ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅; ΠΎΠ½ ΠΏΡΡΠ°Π΅ΡΡΡ Π²Π΅ΡΠ½ΡΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π΄Π»Ρ Π»ΡΠ±ΠΎΠ³ΠΎ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ, Π΄Π°ΠΆΠ΅ ΠΊΠΎΠ³Π΄Π° ΠΎΠ½ΠΎ Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ ΡΠΌΡΡΠ»Π°). ΠΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈ ΡΠΈΠΏΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΡΠ·ΡΠΊΠΎΠ² Π΄Π°ΠΆΠ΅ ΠΏΡΠΎΡΡΠ°Ρ ΠΎΡΠΈΠ±ΠΊΠ° Π²ΠΈΠ΄Π° «a» + 1 ΠΌΠΎΠΆΠ΅Ρ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡΡΡ Π² Π±ΠΎΠ΅Π²ΠΎΠΌ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠΈ. Π‘ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΠ·ΡΠΊΠΈ ΠΏΡΠ΅Π΄ΠΎΡΠ²ΡΠ°ΡΠ°ΡΡ ΡΠ°ΠΊΠΈΠ΅ ΠΎΡΠΈΠ±ΠΊΠΈ, Π½ΠΎ, ΠΊΠΎΠ½Π΅ΡΠ½ΠΎ, ΡΡΠ΅ΠΏΠ΅Π½Ρ ΠΏΡΠ΅Π΄ΠΎΡΠ²ΡΠ°ΡΠ΅Π½ΠΈΡ Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ ΠΌΠΎΡΠ½ΠΎΡΡΠΈ ΡΠΈΡΡΠ΅ΠΌΡ ΡΠΈΠΏΠΎΠ².
Π‘ΠΈΠ»ΡΠ½Π°Ρ ΠΈ ΡΠ»Π°Π±Π°Ρ ΡΠΈΠΏΠΈΠ·Π°ΡΠΈΡ
ΠΠΎΠ½ΡΡΠΈΡ «ΡΠΈΠ»ΡΠ½ΡΠΉ» ΠΈ «ΡΠ»Π°Π±ΡΠΉ» β ΠΎΡΠ΅Π½Ρ Π½Π΅ΠΎΠ΄Π½ΠΎΠ·Π½Π°ΡΠ½ΡΠ΅. ΠΠΎΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΡ ΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ:
ΠΠ½ΠΎΠ³Π΄Π° «ΡΠΈΠ»ΡΠ½ΡΠΉ» ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ «ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ».
Π’ΡΡ Π²ΡΠ΅ ΠΏΡΠΎΡΡΠΎ, Π½ΠΎ Π»ΡΡΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ΅ΡΠΌΠΈΠ½ «ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ», ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ ΠΈ ΠΏΠΎΠ½ΠΈΠΌΠ°ΡΡ Π΅Π³ΠΎ.
ΠΠ½ΠΎΠ³Π΄Π° «ΡΠΈΠ»ΡΠ½ΡΠΉ» ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±ΠΎΠΉΡΠΈ ΡΡΡΠΎΠ³ΠΈΠ΅ ΠΏΡΠ°Π²ΠΈΠ»Π° ΡΠΈΠΏΠΈΠ·Π°ΡΠΈΠΈ Π² ΡΠ·ΡΠΊΠ΅.
ΠΠ°Π²Π°ΠΉΡΠ΅ ΠΎΡΡΠ°Π½ΠΎΠ²ΠΈΠΌΡΡ. ΠΠΎΡ ΠΊΠ°ΠΊ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ·ΡΠΊΠΈ ΠΎΡΠ²Π΅ΡΠ°ΡΡ ΡΡΠΈΠΌ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡΠΌ. ΠΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΌΠ΅ΡΠΈΡΡ, ΡΠΎΠ»ΡΠΊΠΎ Haskell ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ «ΡΠΈΠ»ΡΠ½ΡΠΉ» ΠΏΠΎ Π²ΡΠ΅ΠΌ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°ΠΌ. ΠΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ ΡΠ·ΡΠΊΠΎΠ² Π½Π΅ ΡΠ°ΠΊΠΈΠ΅ ΡΠ΅ΡΠΊΠΈΠ΅.
Π―Π·ΡΠΊ | Π‘ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ? | ΠΠ΅ΡΠ²Π½ΡΠ΅ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ? | Π‘ΡΡΠΎΠ³ΠΈΠ΅ ΠΏΡΠ°Π²ΠΈΠ»Π°? | ΠΠ΅Π·ΠΎΠΏΠ°ΡΠ½ΡΠΉ Π΄Π»Ρ ΠΏΠ°ΠΌΡΡΠΈ? |
---|---|---|---|---|
C | Π‘ΠΈΠ»ΡΠ½ΡΠΉ | ΠΠΎΠ³Π΄Π° ΠΊΠ°ΠΊ | Π‘Π»Π°Π±ΡΠΉ | Π‘Π»Π°Π±ΡΠΉ |
Java | Π‘ΠΈΠ»ΡΠ½ΡΠΉ | ΠΠΎΠ³Π΄Π° ΠΊΠ°ΠΊ | Π‘ΠΈΠ»ΡΠ½ΡΠΉ | Π‘ΠΈΠ»ΡΠ½ΡΠΉ |
Haskell | Π‘ΠΈΠ»ΡΠ½ΡΠΉ | Π‘ΠΈΠ»ΡΠ½ΡΠΉ | Π‘ΠΈΠ»ΡΠ½ΡΠΉ | Π‘ΠΈΠ»ΡΠ½ΡΠΉ |
Python | Π‘Π»Π°Π±ΡΠΉ | ΠΠΎΠ³Π΄Π° ΠΊΠ°ΠΊ | Π‘Π»Π°Π±ΡΠΉ | Π‘ΠΈΠ»ΡΠ½ΡΠΉ |
JavaScript | Π‘Π»Π°Π±ΡΠΉ | Π‘Π»Π°Π±ΡΠΉ | Π‘Π»Π°Π±ΡΠΉ | Π‘ΠΈΠ»ΡΠ½ΡΠΉ |
(«ΠΠΎΠ³Π΄Π° ΠΊΠ°ΠΊ» Π² ΠΊΠΎΠ»ΠΎΠ½ΠΊΠ΅ «ΠΠ΅ΡΠ²Π½ΡΠ΅ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ» ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ ΡΠ°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠΈΠ»ΡΠ½ΡΠΌ ΠΈ ΡΠ»Π°Π±ΡΠΌ Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊΠΈΠ΅ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ ΠΌΡ ΡΡΠΈΡΠ°Π΅ΠΌ ΠΏΡΠΈΠ΅ΠΌΠ»Π΅ΠΌΡΠΌΠΈ).
ΠΠ°ΡΠ°ΡΡΡΡ ΡΠ΅ΡΠΌΠΈΠ½Ρ «ΡΠΈΠ»ΡΠ½ΡΠΉ» ΠΈ «ΡΠ»Π°Π±ΡΠΉ» ΠΎΡΠ½ΠΎΡΡΡΡΡ ΠΊ Π½Π΅ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°ΡΠΈΠΈ ΡΠ°Π·Π½ΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠΉ Π²ΡΡΠ΅, ΠΈ Π΄ΡΡΠ³ΠΈΡ , Π½Π΅ ΠΏΠΎΠΊΠ°Π·Π°Π½Π½ΡΡ Π·Π΄Π΅ΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠΉ. ΠΠ΅ΡΡ ΡΡΠΎΡ Π±Π΅ΡΠΏΠΎΡΡΠ΄ΠΎΠΊ Π΄Π΅Π»Π°Π΅Ρ ΡΠ»ΠΎΠ²Π° «ΡΠΈΠ»ΡΠ½ΡΠΉ» ΠΈ «ΡΠ»Π°Π±ΡΠΉ» ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ Π±Π΅ΡΡΠΌΡΡΠ»Π΅Π½Π½ΡΠΌΠΈ. ΠΠΎΠ³Π΄Π° Ρ ΠΎΡΠ΅ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠΈ ΡΠ΅ΡΠΌΠΈΠ½Ρ, ΡΠΎ Π»ΡΡΡΠ΅ ΠΎΠΏΠΈΡΠ°ΡΡ, ΡΡΠΎ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎ ΠΈΠΌΠ΅Π΅ΡΡΡ Π²Π²ΠΈΠ΄Ρ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠ°Π·Π°ΡΡ, ΡΡΠΎ «JavaScript Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, ΠΊΠΎΠ³Π΄Π° ΡΠΊΠ»Π°Π΄ΡΠ²Π°Π΅ΡΡΡ ΡΡΡΠΎΠΊΠ° Ρ ΡΠΈΡΠ»ΠΎΠΌ, Π½ΠΎ Python Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΎΡΠΈΠ±ΠΊΡ». Π ΡΠ°ΠΊΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΌΡ Π½Π΅ Π±ΡΠ΄Π΅ΠΌ ΡΡΠ°ΡΠΈΡΡ ΡΠ²ΠΎΠΈ ΡΠΈΠ»Ρ Π½Π° ΠΏΠΎΠΏΡΡΠΊΠΈ ΠΏΡΠΈΠΉΡΠΈ ΠΊ ΡΠΎΠ³Π»Π°ΡΠ΅Π½ΠΈΡ ΠΎ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ ΡΠ»ΠΎΠ²Π° «ΡΠΈΠ»ΡΠ½ΡΠΉ». ΠΠ»ΠΈ, Π΅ΡΠ΅ Ρ ΡΠΆΠ΅: ΠΏΡΠΈΠ΄Π΅ΠΌ ΠΊ Π½Π΅ΡΠ°Π·ΡΠ΅ΡΠ΅Π½Π½ΠΎΠΌΡ Π½Π΅ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΡ ΠΈΠ·-Π·Π° ΡΠ΅ΡΠΌΠΈΠ½ΠΎΠ»ΠΎΠ³ΠΈΠΈ.
Π Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π΅ ΡΠ»ΡΡΠ°Π΅Π² ΡΠ΅ΡΠΌΠΈΠ½Ρ «ΡΠΈΠ»ΡΠ½ΡΠΉ» ΠΈ «ΡΠ»Π°Π±ΡΠΉ» Π² ΠΈΠ½ΡΠ΅ΡΠ½Π΅ΡΠ΅ ΡΠ²Π»ΡΡΡΡΡ Π½Π΅ΡΡΠ½ΡΠΌΠΈ ΠΈ ΠΏΠ»ΠΎΡ ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠΌΠΈ ΠΌΠ½Π΅Π½ΠΈΡΠΌΠΈ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΡ Π»ΡΠ΄Π΅ΠΉ. ΠΠ½ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ, ΡΡΠΎΠ±Ρ Π½Π°Π·Π²Π°ΡΡ ΡΠ·ΡΠΊ «ΠΏΠ»ΠΎΡ ΠΈΠΌ» ΠΈΠ»ΠΈ «Ρ ΠΎΡΠΎΡΠΈΠΌ», ΠΈ ΡΡΠΎ ΠΌΠ½Π΅Π½ΠΈΠ΅ ΠΎΠ±ΠΎΡΠ°ΡΠΈΠ²Π°Π΅ΡΡΡ Π² ΡΠ΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΆΠ°ΡΠ³ΠΎΠ½.
Π‘ΠΈΠ»ΡΠ½Π°Ρ ΡΠΈΠΏΠΈΠ·Π°ΡΠΈΡ: Π‘ΠΈΡΡΠ΅ΠΌΠ° ΡΠΈΠΏΠΎΠ², ΠΊΠΎΡΠΎΡΡΡ Ρ Π»ΡΠ±Π»Ρ ΠΈ Ρ ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΌΠ½Π΅ ΠΊΠΎΠΌΡΠΎΡΡΠ½ΠΎ.
Π‘Π»Π°Π±Π°Ρ ΡΠΈΠΏΠΈΠ·Π°ΡΠΈΡ: Π‘ΠΈΡΡΠ΅ΠΌΠ° ΡΠΈΠΏΠΎΠ², ΠΊΠΎΡΠΎΡΠ°Ρ Π±Π΅ΡΠΏΠΎΠΊΠΎΠΈΡ ΠΌΠ΅Π½Ρ ΠΈΠ»ΠΈ Ρ ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΌΠ½Π΅ Π½Π΅ ΠΊΠΎΠΌΡΠΎΡΡΠ½ΠΎ.
ΠΠΎΡΡΠ΅ΠΏΠ΅Π½Π½Π°Ρ ΡΠΈΠΏΠΈΠ·Π°ΡΠΈΡ (gradual typing)
ΠΠ΅ΡΠ΄ΠΎΠ²Π»Π΅ΡΠ²ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π½Π° ΠΏΡΠ°ΠΊΡΠΈΠΊΠ΅ β ΡΡΠΎ Π·Π°Π΄Π°ΡΡ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ eval() ΡΠΈΠΏ Any, ΡΡΠΎ Π½Π°ΠΏΠΎΠΌΠΈΠ½Π°Π΅Ρ Object Π² Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΠΎ-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΡΠ·ΡΠΊΠ°Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈΠ»ΠΈ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ interface <> Π² Go: ΡΡΠΎ ΡΠΈΠΏ, ΠΊΠΎΡΠΎΡΠΎΠΌΡ ΡΠ΄ΠΎΠ²Π»Π΅ΡΠ²ΠΎΡΡΠ΅Ρ Π»ΡΠ±ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅.
Π Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΡΠ·ΡΠΊΠ°Ρ Π΅ΡΡΡ ΠΎΠΏΡΠΈΠΎΠ½Π°Π»ΡΠ½Π°Ρ ΠΈΠ»ΠΈ ΠΏΠΎΡΡΠ΅ΠΏΠ΅Π½Π½Π°Ρ ΡΠΈΠΏΠΈΠ·Π°ΡΠΈΡ (gradual typing): ΠΎΠ½ΠΈ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ, Π½ΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ Π΄ΠΎΠ±Π°Π²Π»ΡΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ Π°Π½Π½ΠΎΡΠ°ΡΠΈΠΈ. Π Python Π½Π΅Π΄Π°Π²Π½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ ΠΎΠΏΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠ΅ ΡΠΈΠΏΡ; TypeScript β ΡΡΠΎ Π½Π°Π΄ΡΡΡΠΎΠΉΠΊΠ° Π½Π°Π΄ JavaScript, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ Π΅ΡΡΡ ΠΎΠΏΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠ΅ ΡΠΈΠΏΡ; Flow ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ Π°Π½Π°Π»ΠΈΠ· ΡΡΠ°ΡΠΎΠ³ΠΎ Π΄ΠΎΠ±ΡΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° Π½Π° JavaScript.
ΠΡΠΈ ΡΠ·ΡΠΊΠΈ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π° ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΡΠΈΠΏΠΈΠ·Π°ΡΠΈΠΈ, Π½ΠΎ ΠΎΠ½ΠΈ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ Π΄Π°Π΄ΡΡ Π°Π±ΡΠΎΠ»ΡΡΠ½ΠΎΠΉ Π³Π°ΡΠ°Π½ΡΠΈΠΈ, ΠΊΠ°ΠΊ ΠΏΠΎ-Π½Π°ΡΡΠΎΡΡΠ΅ΠΌΡ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΠ·ΡΠΊΠΈ. ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ Π±ΡΠ΄ΡΡ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΡΠΈΠΏΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΌΠΈ, Π° Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΡΠ΄ΡΡ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈ ΡΠΈΠΏΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΌΠΈ. ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΡ Π²ΡΠ΅Π³Π΄Π° Π½ΡΠΆΠ½ΠΎ Π·Π½Π°ΡΡ ΠΈ ΠΎΠΏΠ°ΡΠ°ΡΡΡΡ ΡΠ°Π·Π½ΠΈΡΡ.
ΠΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΡ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΡΠΈΠΏΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°
ΠΠΎΠ³Π΄Π° ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΡ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΡΠΈΠΏΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°, ΡΠ½Π°ΡΠ°Π»Π° ΠΏΡΠΎΠ²Π΅ΡΡΠ΅ΡΡΡ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ, ΠΊΠ°ΠΊ Π² Π»ΡΠ±ΠΎΠΌ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ΅. ΠΠΎΡΠΎΠΌ ΠΏΡΠΎΠ²Π΅ΡΡΡΡΡΡ ΡΠΈΠΏΡ. ΠΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΡΠ·ΡΠΊ ΡΠ½Π°ΡΠ°Π»Π° ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠΆΠ°Π»ΠΎΠ²Π°ΡΡΡΡ Π½Π° ΠΎΠ΄Π½Ρ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΡΡ ΠΎΡΠΈΠ±ΠΊΡ, Π° ΠΏΠΎΡΠ»Π΅ Π΅Π΅ ΠΈΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΏΠΎΠΆΠ°Π»ΠΎΠ²Π°ΡΡΡΡ Π½Π° 100 ΠΎΡΠΈΠ±ΠΎΠΊ ΡΠΈΠΏΠΈΠ·Π°ΡΠΈΠΈ. ΠΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΎΡΠΈΠ±ΠΊΠΈ Π½Π΅ ΡΠΎΠ·Π΄Π°Π»ΠΎ ΡΡΠΈ 100 ΠΎΡΠΈΠ±ΠΎΠΊ ΡΠΈΠΏΠΈΠ·Π°ΡΠΈΠΈ. ΠΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ ΠΏΡΠΎΡΡΠΎ Π½Π΅ ΠΈΠΌΠ΅Π» Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΎΠ±Π½Π°ΡΡΠΆΠΈΡΡ ΠΎΡΠΈΠ±ΠΊΠΈ ΡΠΈΠΏΠΎΠ², ΠΏΠΎΠΊΠ° Π½Π΅ Π±ΡΠ» ΠΈΡΠΏΡΠ°Π²Π»Π΅Π½ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ.
ΠΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΡ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΡΠ·ΡΠΊΠΎΠ² ΠΎΠ±ΡΡΠ½ΠΎ ΠΌΠΎΠ³ΡΡ Π³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°ΡΡ Π±ΠΎΠ»Π΅Π΅ Π±ΡΡΡΡΡΠΉ ΠΊΠΎΠ΄, ΡΠ΅ΠΌ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΡ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈΡ . ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΅ΡΠ»ΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ Π·Π½Π°Π΅Ρ, ΡΡΠΎ ΡΡΠ½ΠΊΡΠΈΡ add ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ ΡΠ΅Π»ΡΠ΅ ΡΠΈΡΠ»Π°, ΡΠΎ ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π½Π°ΡΠΈΠ²Π½ΡΡ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡ ADD ΡΠ΅Π½ΡΡΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ°. ΠΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈΠΉ ΡΠ·ΡΠΊ Π±ΡΠ΄Π΅Ρ ΠΏΡΠΎΠ²Π΅ΡΡΡΡ ΡΠΈΠΏ ΠΏΡΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ, Π²ΡΠ±ΠΈΡΠ°Ρ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π° ΡΡΠ½ΠΊΡΠΈΠΉ add Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΡΠΈΠΏΠΎΠ² (ΡΠΊΠ»Π°Π΄ΡΠ²Π°Π΅ΠΌ integers ΠΈΠ»ΠΈ floats ΠΈΠ»ΠΈ ΡΠΊΠ»Π΅ΠΈΠ²Π°Π΅ΠΌ ΡΡΡΠΎΠΊΠΈ ΠΈΠ»ΠΈ, ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ, ΡΠΏΠΈΡΠΊΠΈ?) ΠΠ»ΠΈ Π½ΡΠΆΠ½ΠΎ ΡΠ΅ΡΠΈΡΡ, ΡΡΠΎ Π²ΠΎΠ·Π½ΠΈΠΊΠ»Π° ΠΎΡΠΈΠ±ΠΊΠ° ΠΈ ΡΠΈΠΏΡ Π½Π΅ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡ Π΄ΡΡΠ³ Π΄ΡΡΠ³Ρ. ΠΡΠ΅ ΡΡΠΈ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ Π·Π°Π½ΠΈΠΌΠ°ΡΡ Π²ΡΠ΅ΠΌΡ. Π Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈΡ ΡΠ·ΡΠΊΠ°Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΡΠ°Π·Π½ΡΠ΅ ΡΡΡΠΊΠΈ Π΄Π»Ρ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ JIT-ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΡ (just-in-time), Π³Π΄Π΅ ΠΊΠΎΠ΄ ΠΏΠ΅ΡΠ΅ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΡΠ΅ΡΡΡ ΠΏΡΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΏΠΎΡΠ»Π΅ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ Π²ΡΠ΅ΠΉ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΠΉ ΠΎ ΡΠΈΠΏΠ°Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ. ΠΠ΄Π½Π°ΠΊΠΎ, Π½ΠΈΠΊΠ°ΠΊΠΎΠΉ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈΠΉ ΡΠ·ΡΠΊ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ ΡΡΠ°Π²Π½ΠΈΡΡΡΡ ΠΏΠΎ ΡΠΊΠΎΡΠΎΡΡΡΡ Ρ Π°ΠΊΠΊΡΡΠ°ΡΠ½ΠΎ Π½Π°ΠΏΠΈΡΠ°Π½Π½ΡΠΌ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΌ ΠΊΠΎΠ΄ΠΎΠΌ Π½Π° ΡΠ·ΡΠΊΠ΅ Π²ΡΠΎΠ΄Π΅ Rust.
ΠΡΠ³ΡΠΌΠ΅Π½ΡΡ Π² ΠΏΠΎΠ»ΡΠ·Ρ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΠΈ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈΡ ΡΠΈΠΏΠΎΠ²
Π‘ΡΠΎΡΠΎΠ½Π½ΠΈΠΊΠΈ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ ΡΠΈΠΏΠΎΠ² ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ Π½Π° ΡΠΎ, ΡΡΠΎ Π±Π΅Π· ΡΠΈΡΡΠ΅ΠΌΡ ΡΠΈΠΏΠΎΠ² ΠΏΡΠΎΡΡΡΠ΅ ΠΎΡΠΈΠ±ΠΊΠΈ ΠΌΠΎΠ³ΡΡ ΠΏΡΠΈΠ²Π΅ΡΡΠΈ ΠΊ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°ΠΌ Π² ΠΏΡΠΎΠ΄Π°ΠΊΡΠ΅Π½Π΅. ΠΡΠΎ, ΠΊΠΎΠ½Π΅ΡΠ½ΠΎ ΠΆΠ΅, ΠΏΡΠ°Π²Π΄Π°. ΠΡΠ±ΠΎΠΉ, ΠΊΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π» Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈΠΉ ΡΠ·ΡΠΊ, ΠΈΡΠΏΡΡΠ°Π» ΡΡΠΎ Π½Π° ΡΠ΅Π±Π΅.
ΠΠ»ΡΡΡ ΠΈ ΠΌΠΈΠ½ΡΡΡ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΠΈ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈΡ ΡΠΈΡΡΠ΅ΠΌ ΡΠΈΠΏΠΈΠ·Π°ΡΠΈΠΈ Π²ΡΠ΅ Π΅ΡΠ΅ ΠΏΠ»ΠΎΡ ΠΎ ΠΈΠ·ΡΡΠ΅Π½Ρ, Π½ΠΎ ΠΎΠ½ΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎ Π·Π°Π²ΠΈΡΡΡ ΠΎΡ ΡΠ·ΡΠΊΠ° ΠΈ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠΉ ΡΠ΅ΡΠ°Π΅ΠΌΠΎΠΉ Π·Π°Π΄Π°ΡΠΈ.
Π‘ΡΡΠ΅ΡΡΠ²ΡΡΡ ΡΠ°Π·Π½ΡΠ΅ ΠΏΠΎΠ΄Ρ ΠΎΠ΄Ρ Ρ ΡΠ°Π·Π½ΡΠΌΠΈ ΡΡΠΎΠ²Π½ΡΠΌΠΈ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ, Π½ΠΎ Python ΠΈ JavaScript ΠΎΠ±Π° ΡΠ²Π»ΡΡΡΡΡ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈ ΡΠΈΠΏΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΌΠΈ ΡΠ·ΡΠΊΠ°ΠΌΠΈ.
Π‘ΠΈ Ρ ΡΠ°Π΄ΠΎΡΡΡΡ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΡ ΡΡΠΈΡΠ°ΡΡ Π΄Π°Π½Π½ΡΠ΅ ΠΈΠ· Π»ΡΠ±ΠΎΠ³ΠΎ ΠΌΠ΅ΡΡΠ° Π² ΠΏΠ°ΠΌΡΡΠΈ, ΠΈΠ»ΠΈ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΠΈΡΡ, ΡΡΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠΈΠΏΠ° ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ Π΄ΡΡΠ³ΠΈΠΌ ΡΠΈΠΏΠΎΠΌ, Π΄Π°ΠΆΠ΅ Π΅ΡΠ»ΠΈ ΡΡΠΎ Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ Π½ΠΈΠΊΠ°ΠΊΠΎΠ³ΠΎ ΡΠΌΡΡΠ»Π° ΠΈ ΠΏΡΠΈΠ²Π΅Π΄Π΅Ρ ΠΊ ΠΏΠ°Π΄Π΅Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ.
Haskell ΠΆΠ΅ Π½Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ ΡΠ»ΠΎΠΆΠΈΡΡ integer ΠΈ float Π±Π΅Π· ΡΠ²Π½ΠΎΠ³ΠΎ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ ΠΏΠ΅ΡΠ΅Π΄ ΡΡΠΈΠΌ. Π‘ΠΈ ΠΈ Haskell ΠΎΠ±Π° ΡΠ²Π»ΡΡΡΡΡ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΡΠΈΠΏΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΌΠΈ, Π½Π΅ ΡΠΌΠΎΡΡΡ Π½Π° ΡΠ°ΠΊΠΈΠ΅ Π±ΠΎΠ»ΡΡΠΈΠ΅ ΠΎΡΠ»ΠΈΡΠΈΡ.
ΠΡΡΡ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ Π²Π°ΡΠΈΠ°ΡΠΈΠΉ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈΡ ΠΈ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΡΠ·ΡΠΊΠΎΠ². ΠΡΠ±ΠΎΠ΅ Π±Π΅Π·ΠΎΠ³ΠΎΠ²ΠΎΡΠΎΡΠ½ΠΎΠ΅ Π²ΡΡΠΊΠ°Π·ΡΠ²Π°Π½ΠΈΠ΅ Π²ΠΈΠ΄Π° «ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΠ·ΡΠΊΠΈ Π»ΡΡΡΠ΅, ΡΠ΅ΠΌ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈΠ΅, ΠΊΠΎΠ³Π΄Π° Π΄Π΅Π»ΠΎ ΠΊΠ°ΡΠ°Π΅ΡΡΡ Π₯» β ΡΡΠΎ ΠΏΠΎΡΡΠΈ Π³Π°ΡΠ°Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎ Π΅ΡΡΠ½Π΄Π°. ΠΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΡΠ°Π²Π΄ΠΎΠΉ Π² ΡΠ»ΡΡΠ°Π΅ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΡ ΡΠ·ΡΠΊΠΎΠ², Π½ΠΎ ΡΠΎΠ³Π΄Π° Π»ΡΡΡΠ΅ ΡΠΊΠ°Π·Π°ΡΡ «Haskell Π»ΡΡΡΠ΅, ΡΠ΅ΠΌ Python ΠΊΠΎΠ³Π΄Π° Π΄Π΅Π»ΠΎ ΠΊΠ°ΡΠ°Π΅ΡΡΡ Π₯».
Π Π°Π·Π½ΠΎΠΎΠ±ΡΠ°Π·ΠΈΠ΅ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΡΠΈΡΡΠ΅ΠΌ ΡΠΈΠΏΠΈΠ·Π°ΡΠΈΠΈ
ΠΠ°Π²Π°ΠΉΡΠ΅ Π²Π·Π³Π»ΡΠ½Π΅ΠΌ Π½Π° Π΄Π²Π° Π·Π½Π°ΠΌΠ΅Π½ΠΈΡΡΡ ΠΏΡΠΈΠΌΠ΅ΡΠ° ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΡΠΈΠΏΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΡΠ·ΡΠΊΠΎΠ²: Go ΠΈ Haskell. Π ΡΠΈΡΡΠ΅ΠΌΠ΅ ΡΠΈΠΏΠΈΠ·Π°ΡΠΈΠΈ Go Π½Π΅Ρ ΠΎΠ±ΠΎΠ±ΡΠ΅Π½Π½ΡΡ ΡΠΈΠΏΠΎΠ², ΡΠΈΠΏΠΎΠ² Ρ «ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°ΠΌΠΈ» ΠΎΡ Π΄ΡΡΠ³ΠΈΡ ΡΠΈΠΏΠΎΠ². ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°ΡΡ ΡΠ²ΠΎΠΉ ΡΠΈΠΏ Π΄Π»Ρ ΡΠΏΠΈΡΠΊΠΎΠ² MyList, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΠΎΠΆΠ΅Ρ Ρ ΡΠ°Π½ΠΈΡΡ Π»ΡΠ±ΡΠ΅ Π½ΡΠΆΠ½ΡΠ΅ Π½Π°ΠΌ Π΄Π°Π½Π½ΡΠ΅. ΠΡ Ρ ΠΎΡΠΈΠΌ ΠΈΠΌΠ΅ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ MyList ΡΠ΅Π»ΡΡ ΡΠΈΡΠ΅Π», MyList ΡΡΡΠΎΠΊ ΠΈ ΡΠ°ΠΊ Π΄Π°Π»Π΅Π΅, Π½Π΅ ΠΌΠ΅Π½ΡΡ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΉ ΠΊΠΎΠ΄ MyList. ΠΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠ»Π΅Π΄ΠΈΡΡ Π·Π° ΡΠΈΠΏΠΈΠ·Π°ΡΠΈΠ΅ΠΉ: Π΅ΡΠ»ΠΈ Π΅ΡΡΡ MyList ΡΠ΅Π»ΡΡ ΡΠΈΡΠ΅Π», ΠΈ ΠΌΡ ΡΠ»ΡΡΠ°ΠΉΠ½ΠΎ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΠΌ ΡΡΠ΄Π° ΡΡΡΠΎΠΊΡ, ΡΠΎ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΎΡΠΊΠ»ΠΎΠ½ΠΈΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ.
Go ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎ Π±ΡΠ» ΡΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ ΡΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΡΡΠΎΠ±Ρ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ Π·Π°Π΄Π°Π²Π°ΡΡ ΡΠΈΠΏΡ Π²ΡΠΎΠ΄Π΅ MyList. ΠΡΡΡΠ΅Π΅, ΡΡΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ, ΡΡΠΎ ΡΠΎΠ·Π΄Π°ΡΡ MyList «ΠΏΡΡΡΡΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠ²»: MyList ΠΌΠΎΠΆΠ΅Ρ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΡ, Π½ΠΎ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ ΠΏΡΠΎΡΡΠΎ Π½Π΅ Π·Π½Π°Π΅Ρ ΠΈΡ ΡΠΈΠΏ. ΠΠΎΠ³Π΄Π° ΠΌΡ Π΄ΠΎΡΡΠ°Π΅ΠΌ ΠΎΠ±ΡΠ΅ΠΊΡΡ ΠΈΠ· MyList, Π½Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΡΠΎΠΎΠ±ΡΠΈΡΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΡ ΠΈΡ ΡΠΈΠΏ. ΠΡΠ»ΠΈ ΠΌΡ Π³ΠΎΠ²ΠΎΡΠΈΠΌ «Π― Π΄ΠΎΡΡΠ°Ρ ΡΡΡΠΎΠΊΡ», Π½ΠΎ Π² ΡΠ΅Π°Π»ΡΠ½ΠΎΡΡΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ β ΡΡΠΎ ΡΠΈΡΠ»ΠΎ, ΡΠΎ Π±ΡΠ΄Π΅Ρ ΠΎΡΠΈΠ±ΠΊΠ° ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ, ΠΊΠ°ΠΊ Π² ΡΠ»ΡΡΠ°Π΅ Ρ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈΠΌΠΈ ΡΠ·ΡΠΊΠ°ΠΌΠΈ.
Π Go ΡΠ°ΠΊΠΆΠ΅ Π½Π΅Ρ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π° Π΄ΡΡΠ³ΠΈΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠ΅ΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠΈΡΡΡΡΡΠ²ΡΡΡ Π² ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΡΠΈΠΏΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΡΠ·ΡΠΊΠ°Ρ (ΠΈΠ»ΠΈ Π΄Π°ΠΆΠ΅ Π² Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΡΠΈΡΡΠ΅ΠΌΠ°Ρ 1970-Ρ Π³ΠΎΠ΄ΠΎΠ²). Π£ ΡΠΎΠ·Π΄Π°ΡΠ΅Π»Π΅ΠΉ Go Π±ΡΠ»ΠΈ ΡΠ²ΠΎΠΈ ΠΏΡΠΈΡΠΈΠ½Ρ Π΄Π»Ρ ΡΡΠΈΡ ΡΠ΅ΡΠ΅Π½ΠΈΠΉ, Π½ΠΎ ΠΌΠ½Π΅Π½ΠΈΠ΅ Π»ΡΠ΄Π΅ΠΉ ΡΠΎ ΡΡΠΎΡΠΎΠ½Ρ ΠΏΠΎ ΡΡΠΎΠΌΡ ΠΏΠΎΠ²ΠΎΠ΄Ρ ΠΈΠ½ΠΎΠ³Π΄Π° ΠΌΠΎΠΆΠ΅Ρ Π·Π²ΡΡΠ°ΡΡ ΡΠ΅Π·ΠΊΠΎ.
Haskell ΠΌΠΎΠΆΠ΅Ρ Π²ΡΡΠ°ΠΆΠ°ΡΡ Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ Π±ΠΎΠ»Π΅Π΅ ΡΠ»ΠΎΠΆΠ½ΡΠ΅ ΠΈΠ΄Π΅ΠΈ Π½Π°ΠΏΡΡΠΌΡΡ ΡΠΈΠΏΠ°ΠΌΠΈ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Num a => MyList a ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ «MyList Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΡΠ½ΠΎΡΡΡΡΡ ΠΊ ΠΎΠ΄Π½ΠΎΠΌΡ ΡΠΈΠΏΡ ΡΠΈΡΠ΅Π»». ΠΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΠΏΠΈΡΠΎΠΊ integer’ΠΎΠ², float’ΠΎΠ² ΠΈΠ»ΠΈ Π΄Π΅ΡΡΡΠΈΡΠ½ΡΡ ΡΠΈΡΠ΅Π» Ρ ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΉ ΡΠΎΡΠ½ΠΎΡΡΡΡ, Π½ΠΎ ΡΡΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ Π±ΡΠ΄Π΅Ρ ΡΠΏΠΈΡΠΊΠΎΠΌ ΡΡΡΠΎΠΊ, ΡΡΠΎ ΠΏΡΠΎΠ²Π΅ΡΡΠ΅ΡΡΡ ΠΏΡΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ.
ΠΡΠ»ΠΈ Ρ ΡΡΠ½ΠΊΡΠΈΠΈ Π² ΡΠΈΠΏΠ΅ Π½Π΅Ρ IO, ΡΠΎ ΠΌΡ Π·Π½Π°Π΅ΠΌ, ΡΡΠΎ ΠΎΠ½Π° Π½Π΅ ΡΠΎΠ²Π΅ΡΡΠ°Π΅Ρ Π½ΠΈΠΊΠ°ΠΊΠΈΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ Π²Π²ΠΎΠ΄Π°/Π²ΡΠ²ΠΎΠ΄Π°. Π Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ, ΠΊ ΠΏΡΠΈΠΌΠ΅ΡΡ, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ½ΡΡΡ, ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅Ρ Π»ΠΈ ΡΡΠ½ΠΊΡΠΈΡ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ , ΠΏΡΠΎΡΡΠΎ Π²Π·Π³Π»ΡΠ½ΡΠ² Π½Π° Π΅Π΅ ΡΠΈΠΏ. ΠΠΈΠΊΠ°ΠΊΠΈΠ΅ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΈ ΠΏΠΎΡΡΠΈ Π½ΠΈΠΊΠ°ΠΊΠΈΠ΅ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΠ·ΡΠΊΠΈ Π½Π΅ ΡΠΏΠΎΡΠΎΠ±Ρ Π½Π° ΡΠ°ΠΊΠΎΠ΅. ΠΡΠΎ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΡ ΡΠ·ΡΠΊΠΎΠ² Ρ ΡΠ°ΠΌΠΎΠΉ ΠΌΠΎΡΠ½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠΎΠΉ ΡΠΈΠΏΠΈΠ·Π°ΡΠΈΠΈ.
Π Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π΅ ΡΠ·ΡΠΊΠΎΠ² Π½Π°ΠΌ ΠΏΡΠΈΡΠ»ΠΎΡΡ Π±Ρ ΡΠ°Π·Π±ΠΈΡΠ°ΡΡΡΡ Ρ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ ΠΈ Π²ΡΠ΅ΠΌΠΈ ΡΡΠ½ΠΊΡΠΈΡΠΌΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΡΡΡΠ΄Π° Π²ΡΠ·ΡΠ²Π°ΡΡΡΡ, ΠΈ ΡΠ°ΠΊ Π΄Π°Π»Π΅Π΅, Π² ΠΏΠΎΠΏΡΡΠΊΠ°Ρ Π½Π°ΠΉΡΠΈ ΡΡΠΎ-ΡΠΎ, ΠΈΠ·ΠΌΠ΅Π½ΡΡΡΠ΅Π΅ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ . ΠΡΠΎ ΡΡΠΎΠΌΠΈΡΠ΅Π»ΡΠ½ΡΠΉ ΠΏΡΠΎΡΠ΅ΡΡ, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ Π»Π΅Π³ΠΊΠΎ Π΄ΠΎΠΏΡΡΡΠΈΡΡ ΠΎΡΠΈΠ±ΠΊΡ. Π ΡΠΈΡΡΠ΅ΠΌΠ° ΡΠΈΠΏΠΎΠ² Haskell ΠΌΠΎΠΆΠ΅Ρ ΠΎΡΠ²Π΅ΡΠΈΡΡ Π½Π° ΡΡΠΎΡ Π²ΠΎΠΏΡΠΎΡ ΠΏΡΠΎΡΡΠΎ ΠΈ Π³Π°ΡΠ°Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎ.
Π‘ΡΠ°Π²Π½ΠΈΡΠ΅ ΡΡΡ ΠΌΠΎΡΠ½ΠΎΡΡΡ Ρ Go, ΠΊΠΎΡΠΎΡΡΠΉ Π½Π΅ ΡΠΏΠΎΡΠΎΠ±Π΅Π½ Π²ΡΡΠ°Π·ΠΈΡΡ ΠΏΡΠΎΡΡΡΡ ΠΈΠ΄Π΅Ρ MyList, Π½Π΅ Π³ΠΎΠ²ΠΎΡΡ ΡΠΆΠ΅ ΠΎ «ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ Π΄Π²Π° Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ°, ΠΈ ΠΎΠ½ΠΈ ΠΎΠ±Π° ΡΠΈΡΠ»Π΅Π½Π½ΡΠ΅ ΠΈ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠΈΠΏΠ°, ΠΈ ΠΊΠΎΡΠΎΡΠ°Ρ Π΄Π΅Π»Π°Π΅Ρ Π²Π²ΠΎΠ΄/Π²ΡΠ²ΠΎΠ΄».
ΠΠΎΠ΄Ρ ΠΎΠ΄ Go ΡΠΏΡΠΎΡΠ°Π΅Ρ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ² Π΄Π»Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π½Π° Go (Π² ΡΠ°ΡΡΠ½ΠΎΡΡΠΈ, ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ° ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΡΠΎΡΡΠΎΠΉ). Π ΡΠΎΠΌΡ ΠΆΠ΅, ΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΠΈΠ·ΡΡΠΈΡΡ ΠΌΠ΅Π½ΡΡΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΠΉ. ΠΠ°ΠΊ ΡΡΠΈ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π° ΡΡΠ°Π²Π½ΠΈΠΌΡ ΡΠΎ Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΡΠΌΠΈ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡΠΌΠΈ β ΡΡΠ±ΡΠ΅ΠΊΡΠΈΠ²Π½ΡΠΉ Π²ΠΎΠΏΡΠΎΡ. ΠΠ΄Π½Π°ΠΊΠΎ, Π½Π΅Π»ΡΠ·Ρ ΠΏΠΎΡΠΏΠΎΡΠΈΡΡ, ΡΡΠΎ Haskell ΡΠ»ΠΎΠΆΠ½Π΅Π΅ ΠΈΠ·ΡΡΠΈΡΡ, ΡΠ΅ΠΌ Go, ΠΈ ΡΡΠΎ ΡΠΈΡΡΠ΅ΠΌΠ° ΡΠΈΠΏΠΎΠ² Π² Haskell Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ ΠΌΠΎΡΠ½Π΅Π΅, ΠΈ ΡΡΠΎ Haskell ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠ΅Π΄ΠΎΡΠ²ΡΠ°ΡΠΈΡΡ Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ Π±ΠΎΠ»ΡΡΠ΅ ΡΠΈΠΏΠΎΠ² Π±Π°Π³ΠΎΠ² ΠΏΡΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ.
Go ΠΈ Haskell Π½Π°ΡΡΠΎΠ»ΡΠΊΠΎ ΡΠ°Π·Π½ΡΠ΅ ΡΠ·ΡΠΊΠΈ, ΡΡΠΎ ΠΈΡ Π³ΡΡΠΏΠΏΠΈΡΠΎΠ²ΠΊΠ° Π² ΠΎΠ΄ΠΈΠ½ ΠΊΠ»Π°ΡΡ «ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΡΠ·ΡΠΊΠΎΠ²» ΠΌΠΎΠΆΠ΅Ρ Π²Π²ΠΎΠ΄ΠΈΡΡ Π² Π·Π°Π±Π»ΡΠΆΠ΄Π΅Π½ΠΈΠ΅, Π½Π΅ ΡΠΌΠΎΡΡΡ Π½Π° ΡΠΎ, ΡΡΠΎ ΡΠ΅ΡΠΌΠΈΠ½ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎ. ΠΡΠ»ΠΈ ΡΡΠ°Π²Π½ΠΈΠ²Π°ΡΡ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π° Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ, ΡΠΎ Go Π±Π»ΠΈΠΆΠ΅ ΠΊ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈΡ ΡΠ·ΡΠΊΠ°ΠΌ, Π½Π΅ΠΆΠ΅Π»ΠΈ ΠΊ Haskell’Ρ.
Π‘ Π΄ΡΡΠ³ΠΎΠΉ ΡΡΠΎΡΠΎΠ½Ρ, Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΠ·ΡΠΊΠΈ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½Π΅Π΅, ΡΠ΅ΠΌ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΠ·ΡΠΊΠΈ. (Python Π² ΡΠ΅Π»ΠΎΠΌ ΡΡΠΈΡΠ°Π΅ΡΡΡ Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½Π΅Π΅, ΡΠ΅ΠΌ Π‘ΠΈ). ΠΠΎΠ³Π΄Π° Ρ ΠΎΡΠ΅ΡΡΡ Π΄Π΅Π»Π°ΡΡ ΠΎΠ±ΠΎΠ±ΡΠ΅Π½ΠΈΡ ΠΎ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΠΈΠ»ΠΈ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈΡ ΡΠ·ΡΠΊΠ°Ρ ΠΊΠ°ΠΊ Π³ΡΡΠΏΠΏΠ°Ρ , ΡΠΎ Π½Π΅ Π·Π°Π±ΡΠ²Π°ΠΉΡΠ΅ ΠΎΠ± ΠΎΠ³ΡΠΎΠΌΠ½ΠΎΠΌ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π΅ ΠΎΡΠ»ΠΈΡΠΈΠΉ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠ·ΡΠΊΠ°ΠΌΠΈ.
ΠΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΡ ΠΎΡΠ»ΠΈΡΠΈΡ Π² Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΡ ΡΠΈΡΡΠ΅ΠΌ ΡΠΈΠΏΠΈΠ·Π°ΡΠΈΠΈ
Π Π±ΠΎΠ»Π΅Π΅ ΠΌΠΎΡΠ½ΡΡ ΡΠΈΡΡΠ΅ΠΌΠ°Ρ ΡΠΈΠΏΠΈΠ·Π°ΡΠΈΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠ°Π·Π°ΡΡ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ Π½Π° Π±ΠΎΠ»Π΅Π΅ ΠΌΠ΅Π»ΠΊΠΈΡ ΡΡΠΎΠ²Π½ΡΡ . ΠΠΎΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΈΠΌΠ΅ΡΠΎΠ², Π½ΠΎ Π½Π΅ Π·Π°ΡΠΈΠΊΠ»ΠΈΠ²Π°ΠΉΡΠ΅ΡΡ Π½Π° Π½ΠΈΡ , Π΅ΡΠ»ΠΈ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ Π½Π΅ΠΏΠΎΠ½ΡΡΠ½ΡΠΉ.
Π Go ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠ°Π·Π°ΡΡ «ΡΡΠ½ΠΊΡΠΈΡ add ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ Π΄Π²Π° integer’Π° ΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ integer»:
Π Haskell ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠ°Π·Π°ΡΡ «ΡΡΠ½ΠΊΡΠΈΡ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ Π»ΡΠ±ΠΎΠΉ ΡΠΈΡΠ»Π΅Π½Π½ΡΠΉ ΡΠΈΠΏ ΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΠΈΡΠ»ΠΎ ΡΠΎΠ³ΠΎ ΠΆΠ΅ ΡΠΈΠΏΠ°»:
Π Idris ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠ°Π·Π°ΡΡ «ΡΡΠ½ΠΊΡΠΈΡ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ Π΄Π²Π° integer’Π° ΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ integer, Π½ΠΎ ΠΏΠ΅ΡΠ²ΡΠΉ Π°ΡΠ³ΡΠΌΠ΅Π½Ρ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΠΌΠ΅Π½ΡΡΠ΅ Π²ΡΠΎΡΠΎΠ³ΠΎ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ°»:
Π Haskell Π½Π΅Ρ ΡΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½ΡΠ° ΡΠ°ΠΊΠΎΠΌΡ ΡΠΈΠΏΡ ΠΊΠ°ΠΊ Π² ΠΏΡΠΈΠΌΠ΅ΡΠ΅ Ρ Idris Π²ΡΡΠ΅, Π° Π² Go Π½Π΅Ρ ΡΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½ΡΠ° Π½ΠΈ ΠΏΡΠΈΠΌΠ΅ΡΡ Ρ Haskell, Π½ΠΈ ΠΏΡΠΈΠΌΠ΅ΡΡ Ρ Idris. Π ΠΈΡΠΎΠ³Π΅, Idris ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠ΅Π΄ΠΎΡΠ²ΡΠ°ΡΠΈΡΡ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ Π±Π°Π³ΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π΅ ΡΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠ΅Π΄ΠΎΡΠ²ΡΠ°ΡΠΈΡΡ Haskell, Π° Haskell ΡΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠ΅Π΄ΠΎΡΠ²ΡΠ°ΡΠΈΡΡ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ Π±Π°Π³ΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π΅ Π·Π°ΠΌΠ΅ΡΠΈΡ Go. Π ΠΎΠ±ΠΎΠΈΡ ΡΠ»ΡΡΠ°ΡΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΡΠΈΡΡΠ΅ΠΌΡ ΡΠΈΠΏΠΈΠ·Π°ΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ΄Π΅Π»Π°ΡΡ ΡΠ·ΡΠΊ Π±ΠΎΠ»Π΅Π΅ ΡΠ»ΠΎΠΆΠ½ΡΠΌ.
Π‘ΠΈΡΡΠ΅ΠΌΡ ΡΠΈΠΏΠΈΠ·Π°ΡΠΈΠΈ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΡΠ·ΡΠΊΠΎΠ²
ΠΠΎΡ Π³ΡΡΠ±ΡΠΉ ΡΠΏΠΈΡΠΎΠΊ ΡΠΈΡΡΠ΅ΠΌ ΡΠΈΠΏΠΈΠ·Π°ΡΠΈΠΈ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΡΠ·ΡΠΊΠΎΠ² Π² ΠΏΠΎΡΡΠ΄ΠΊΠ΅ Π²ΠΎΠ·ΡΠ°ΡΡΠ°Π½ΠΈΡ ΠΌΠΎΡΠ½ΠΎΡΡΠΈ. ΠΡΠΎΡ ΡΠΏΠΈΡΠΎΠΊ Π΄Π°ΡΡ Π²Π°ΠΌ ΠΎΠ±ΡΠ΅Π΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΎ ΠΌΠΎΡΠ½ΠΎΡΡΠΈ ΡΠΈΡΡΠ΅ΠΌ, Π½Π΅ Π½ΡΠΆΠ½ΠΎ ΠΎΡΠ½ΠΎΡΠΈΡΡΡΡ ΠΊ Π½Π΅ΠΌΡ ΠΊΠ°ΠΊ ΠΊ Π°Π±ΡΠΎΠ»ΡΡΠ½ΠΎΠΉ ΠΏΡΠ°Π²Π΄Π΅. Π‘ΠΎΠ±ΡΠ°Π½Π½ΡΠ΅ Π² ΠΎΠ΄Π½Ρ Π³ΡΡΠΏΠΏΡ ΡΠ·ΡΠΊΠΈ ΠΌΠΎΠ³ΡΡ ΡΠΈΠ»ΡΠ½ΠΎ ΠΎΡΠ»ΠΈΡΠ°ΡΡΡΡ Π΄ΡΡΠ³ ΠΎΡ Π΄ΡΡΠ³Π°. Π ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅ ΡΠΈΠΏΠΈΠ·Π°ΡΠΈΠΈ Π΅ΡΡΡ ΡΠ²ΠΎΠΈ Π·Π°ΠΌΠΎΡΠΎΡΠΊΠΈ, ΠΈ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ ΠΈΠ· Π½ΠΈΡ ΠΎΡΠ΅Π½Ρ ΡΠ»ΠΎΠΆΠ½Ρ.
ΠΠ°Π±Π»ΡΠ΄Π°Π΅ΡΡΡ ΡΠ²Π½ΠΎΠ΅ Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅ Π² ΡΡΠΎΡΠΎΠ½Ρ Π±ΠΎΠ»Π΅Π΅ ΠΌΠΎΡΠ½ΡΡ ΡΠΈΡΡΠ΅ΠΌ ΡΠΈΠΏΠΈΠ·Π°ΡΠΈΠΈ, ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ Π΅ΡΠ»ΠΈ ΡΡΠ΄ΠΈΡΡ ΠΏΠΎ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΠΎΡΡΠΈ ΡΠ·ΡΠΊΠΎΠ², Π° Π½Π΅ ΠΏΠΎ ΠΏΡΠΎΡΡΠΎΠΌΡ ΡΠ°ΠΊΡΡ ΡΡΡΠ΅ΡΡΠ²ΠΎΠ²Π°Π½ΠΈΡ ΡΠ·ΡΠΊΠΎΠ². ΠΠ·Π²Π΅ΡΡΠ½ΠΎΠ΅ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ β ΡΡΠΎ Go, ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΠ±ΡΡΡΠ½ΡΠ΅Ρ, ΠΏΠΎΡΠ΅ΠΌΡ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΡΡΠΎΡΠΎΠ½Π½ΠΈΠΊΠΈ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΡΠ·ΡΠΊΠΎΠ² ΡΡΠΈΡΠ°ΡΡ Π΅Π³ΠΎ ΡΠ°Π³ΠΎΠΌ Π½Π°Π·Π°Π΄.
ΠΡΡΠΏΠΏΠ° Π΄Π²Π° (Java ΠΈ C#) β ΡΡΠΎ ΠΌΡΠΉΠ½ΡΡΡΠΈΠΌΠΎΠ²ΡΠ΅ ΡΠ·ΡΠΊΠΈ, Π·ΡΠ΅Π»ΡΠ΅ ΠΈ ΡΠΈΡΠΎΠΊΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠ΅.
ΠΡΡΠΏΠΏΠ° ΡΡΠΈ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π½Π° ΠΏΠΎΡΠΎΠ³Π΅ Π²Ρ ΠΎΠ΄Π° Π² ΠΌΡΠΉΠ½ΡΡΡΠΈΠΌ, Ρ Π±ΠΎΠ»ΡΡΠΎΠΉ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΎΠΉ ΡΠΎ ΡΡΠΎΡΠΎΠ½Ρ Mozilla (Rust) ΠΈ Apple (Swift).
ΠΡΡΠΏΠΏΠ° ΡΠ΅ΡΡΡΠ΅ (Idris and Agda) Π΄Π°Π»Π΅ΠΊΠΈ ΠΎΡ ΠΌΡΠΉΠ½ΡΡΡΠΈΠΌΠ°, Π½ΠΎ ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡΡΡ ΡΠΎ Π²ΡΠ΅ΠΌΠ΅Π½Π΅ΠΌ. Π―Π·ΡΠΊΠΈ Π³ΡΡΠΏΠΏΡ ΡΡΠΈ Π±ΡΠ»ΠΈ Π΄Π°Π»Π΅ΠΊΠΎ ΠΎΡ ΠΌΡΠΉΠ½ΡΡΡΠΈΠΌΠ° Π΅ΡΠ΅ Π΄Π΅ΡΡΡΡ Π»Π΅Ρ Π½Π°Π·Π°Π΄.