Π§ΠΈΡ‚Π°ΠΉΡ‚Π΅ ΠΊΠ½ΠΈΠ³ΠΈ ΠΎΠ½Π»Π°ΠΉΠ½ Π½Π° Bookidrom.ru! БСсплатныС ΠΊΠ½ΠΈΠ³ΠΈ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠ»ΠΈΠΊΠ΅

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ Β«ΠŸΠ ΠžΠ“Π ΠΠœΠœΠ˜Π ΠžΠ’ΠΠΠ˜Π• НА Π―Π—Π«ΠšΠ• ΠŸΠ ΠžΠ›ΠžΠ“Β». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 49

Автор Π£ Клоксин

сдСлано(foo(_,_)).


Π’ дальнСйшСм, ΠΏΡ€ΠΈ Ρ‡Ρ‚Π΅Π½ΠΈΠΈ ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Ρ… ΡƒΡ‚Π²Π΅Ρ€ΠΆΠ΄Π΅Π½ΠΈΠΉ для ΠΏΡ€Π΅Π΄ΠΈΠΊΠ°Ρ‚Π° too, ΠΌΡ‹ смоТСм ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ старыС утвСрТдСния ΡƒΠΆΠ΅ ΡƒΠ΄Π°Π»Π΅Π½Ρ‹ ΠΈΠ· Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…. Π’Π΅ΠΌ самым удаСтся ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ ΠΎΡˆΠΈΠ±ΠΎΡ‡Π½ΠΎΠ³ΠΎ удалСния Π½ΠΎΠ²Ρ‹Ρ… ΡƒΡ‚Π²Π΅Ρ€ΠΆΠ΄Π΅Π½ΠΈΠΉ. Для Π΄Π°Π½Π½ΠΎΠ³ΠΎ опрСдСлСния Π²Π°ΠΆΠ½ΠΎ, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ Π½Π΅ добавляСм Π² Π±Π°Π·Ρƒ Π΄Π°Π½Π½Ρ‹Ρ… Ρ‡Ρ‚ΠΎ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ Π²Ρ€ΠΎΠ΄Π΅:


сдСлано(foΠΎ(Π°,Π₯)).


ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π² этом случаС Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ ΠΏΡ€Π΅Π΄ΠΈΠΊΠ°Ρ‚Π° сдСлано Π½Π΅ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ совпадаСт с Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠΌ утвСрТдСния для foo. ΠŸΠ°Ρ€Π° запросов

…,functor(Π—Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ,Func,Arity),functor(Proc,Func,Arity),…

ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚ΠΈΠ·ΠΈΡ€ΡƒΠ΅Ρ‚ Ргос структурой, ΠΈΠΌΠ΅ΡŽΡ‰Π΅ΠΉ Ρ‚ΠΎΡ‚ ΠΆΠ΅ Ρ„ΡƒΠ½ΠΊΡ‚ΠΎΡ€, Ρ‡Ρ‚ΠΎ ΠΈ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ Π—Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ, Π½ΠΎ с ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌΠΈ Π² качСствС Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² (см. Ρ€Π°Π·Π΄. 6.5).

ГЛАВА 8. ΠžΠ’Π›ΠΠ”ΠšΠ ΠŸΠ ΠžΠ›ΠžΠ“-ΠŸΠ ΠžΠ“Π ΠΠœΠœ

На ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹Ρ… Π²Ρ‹ΡˆΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°Ρ… Π²Ρ‹ ΡƒΠΆΠ΅ ΠΏΡ€ΠΈΠΎΠ±Ρ€Π΅Π»ΠΈ ΠΎΠΏΡ‹Ρ‚ примСнСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ ΠΈ Π½Π°ΡƒΡ‡ΠΈΠ»ΠΈΡΡŒ ΠΈΡ… ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ, Π° Ρ‚Π°ΠΊΠΆΠ΅ успСли Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΈ свои собствСнныС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. Π’Π΅ΠΏΠ΅Ρ€ΡŒ самоС врСмя Π·Π°Π½ΡΡ‚ΡŒΡΡ вопросом: Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ, ΠΊΠΎΠ³Π΄Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π²Π΅Π΄Π΅Ρ‚ сСбя Π½Π΅ Ρ‚Π°ΠΊ, ΠΊΠ°ΠΊ оТидалось. ΠŸΠΎΠ΄ΠΎΠ±Π½Ρ‹Π΅ нСоТиданности связаны с Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ΠΌ ошибок Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅, Π° процСсс устранСния этих ошибок называСтся ΠΎΡ‚Π»Π°Π΄ΠΊΠΎΠΉ. По Π½Π°ΡˆΠ΅ΠΌΡƒ ΡƒΠ±Π΅ΠΆΠ΄Π΅Π½ΠΈΡŽ самым Ρ€Π°Π·ΡƒΠΌΠ½Ρ‹ΠΌ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΎΠΌ ΠΊ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ являСтся Ρ‚ΠΎΡ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΡ…Π°Ρ€Π°ΠΊΡ‚Π΅Ρ€ΠΈΠ·ΠΎΠ²Π°Π½ ΠΊΠ°ΠΊ Β«ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ с ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠ΅ΠΌ ошибок». ΠŸΠ΅Ρ€Π΅Ρ„Ρ€Π°Π·ΠΈΡ€ΡƒΡ ΡΡ‚Π°Ρ€ΡƒΡŽ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΊΡƒ, ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠ°Π·Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π³Ρ€Π°ΠΌΠΌ Ρ‚Ρ‰Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ программирования стоит ΠΊΠΈΠ»ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ. Π’ этой Π³Π»Π°Π²Π΅ ΠΌΡ‹ расскаТСм ΠΎ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΌΠ΅Ρ‚ΠΎΠ΄Π°Ρ… ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ, Π½ΠΎ Π½Π°Ρ‡Π½Π΅ΠΌ с Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ проникновСния ошибок Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. Бознавая, Ρ‡Ρ‚ΠΎ Π² ΠΎΠ±Ρ‰Π΅ΠΌ Π²ΠΈΠ΄Π΅ эта ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Π½Π΅Ρ€Π°Π·Ρ€Π΅ΡˆΠΈΠΌΠ°, ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ просто ΠΏΠΎΠ΄Π΅Π»ΠΈΡ‚ΡŒΡΡ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ Π½Π΅Ρ„ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ ΠΏΡ€ΠΈΠ΅ΠΌΠ°ΠΌΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡƒΠΆΠ΅ приносили ΠΏΠΎΠ»ΡŒΠ·Ρƒ Π΄Ρ€ΡƒΠ³ΠΈΠΌ программистам, Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΠΌ Π½Π° ΠŸΡ€ΠΎΠ»ΠΎΠ³Π΅.

Как ΠΈ всякоС творчСство, Π±ΡƒΠ΄ΡŒ Ρ‚ΠΎ сочинСниС ΠΌΡƒΠ·Ρ‹ΠΊΠΈ, Π»ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΡƒΡ€Π° ΠΈΠ»ΠΈ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π°, ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ располагаСт мноТСством способов прСдставлСния ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ этих ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΈ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠΉ ΠΌΠ΅ΠΆΠ΄Ρƒ Π½ΠΈΠΌΠΈ Π² ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅. Π’ ΠΎΠ±Ρ‰Π΅ΠΌ случаС для Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ элСмСнта Π΄Π°Π½Π½Ρ‹Ρ… Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ сущСствуСт нСсколько Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Ρ… способов Π΅Π³ΠΎ прСдставлСния ΠΈΠ»ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ. Всякий Ρ€Π°Π·, ΠΊΠΎΠ³Π΄Π° программист Ρ€Π΅ΡˆΠ°Π΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² Π΄Π°Π½Π½ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Π½ΠΈΡ…, ΠΌΡ‹ Π³ΠΎΠ²ΠΎΡ€ΠΈΠΌ, Ρ‡Ρ‚ΠΎ программист принял ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π½ΠΎΠ΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅.

Новички, Π²ΠΏΠ΅Ρ€Π²Ρ‹Π΅ ΡΡ‚ΠΎΠ»ΠΊΠ½ΡƒΠ²ΡˆΠΈΠ΅ΡΡ с Π·Π°Π΄Π°Ρ‡Π΅ΠΉ Π²Ρ‹Π±ΠΎΡ€Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π½Ρ‹Ρ… Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ, часто ΠΈΡΠΏΡ‹Ρ‚Ρ‹Π²Π°ΡŽΡ‚ трудности. ΠŸΠΎΠΌΠΎΡ‡ΡŒ ΠΈΠΌ ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π½Π°Π½ΠΈΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Ρ… Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ² Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ, ΠΈ, ΠΊΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Π²Π°ΠΆΠ½ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ€ΡƒΠΊΠΎΠ²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒ Ρ€Π°Π·ΡŠΡΡΠ½ΠΈΠ» ΠΈΠΌ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΈΠΊΡƒ программирования Π² Ρ†Π΅Π»ΠΎΠΌ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ искусство принятия ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π½Ρ‹Ρ… Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ – это ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½Π°Ρ дисциплина. ΠœΡ‹ ΡƒΠΆΠ΅ ΠΏΡ‹Ρ‚Π°Π»ΠΈΡΡŒ Π·Π°Ρ‚Ρ€ΠΎΠ½ΡƒΡ‚ΡŒ эту ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ Π² Ρ€Π°Π·Π΄. 1.1, Π³Π΄Π΅ ΠΎΠ±ΡΡƒΠΆΠ΄Π°Π»ΠΈΡΡŒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ способы ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ†ΠΈΠΈ ΡƒΡ‚Π²Π΅Ρ€ΠΆΠ΄Π΅Π½ΠΈΠΉ. Π­Ρ‚ΠΈ вопросы связаны с прСдставлСниСм ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΈ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠΉ. Π’ Ρ€Π°Π·Π΄. 7.7 ΠΌΡ‹ снова ΡΡ‚ΠΎΠ»ΠΊΠ½ΡƒΠ»ΠΈΡΡŒ с этой ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΎΠΉ ΠΏΡ€ΠΈ описании Ρ‚Ρ€Π΅Ρ… Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… способов упорядочСния списка ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ². Π­Ρ‚ΠΈ вопросы связаны с Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ способами ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΈ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠΉ.

Π’ Π΄Π°Π½Π½ΠΎΠΉ ΠΊΠ½ΠΈΠ³Π΅ ΠΌΡ‹ ΡΡ‚Π°Ρ€Π°Π»ΠΈΡΡŒ ΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΏΠΎΠΌΠΎΡ‰ΡŒ Π² Π²Ρ‹Π±ΠΎΡ€Π΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π½Ρ‹Ρ… Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ двумя путями. Π’ΠΎ-ΠΏΠ΅Ρ€Π²Ρ‹Ρ…, Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ Π² ΠΊΠ½ΠΈΠ³Π΅ большого числа ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΡΠΏΠΎΡΠΎΠ±ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ ΡƒΡΠ²ΠΎΠ΅Π½ΠΈΡŽ ΠΈΠ΄Π΅ΠΉ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ, Π²Ρ‹Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½Ρ‹Ρ… ΠΎΠΏΡ‹Ρ‚Π½Ρ‹ΠΌΠΈ программистами. Π’ΠΎ-Π²Ρ‚ΠΎΡ€Ρ‹Ρ…, Π² Π΄Π°Π½Π½ΠΎΠΉ Π³Π»Π°Π²Π΅ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ совСты ΠΈ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρ†ΠΈΠΈ, спСцифичСскиС для ΠŸΡ€ΠΎΠ»ΠΎΠ³Π°.

8.1. РасполоТСниС тСкстов ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ

ПослС Ρ‚ΠΎΠ³ΠΎ ΠΊΠ°ΠΊ программист принял Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ ΠΈ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ ΠΈ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅, Π΅ΠΌΡƒ слСдуСт ΡƒΠ±Π΅Π΄ΠΈΡ‚ΡŒΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ тСкст ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ располоТСн ΡƒΠ΄ΠΎΠ±Π½ΠΎ для чтСния ΠΈ Π΅Π΅ синтаксичСскиС конструкции ясны. Набор ΡƒΡ‚Π²Π΅Ρ€ΠΆΠ΄Π΅Π½ΠΈΠΉ для Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΡ€Π΅Π΄ΠΈΠΊΠ°Ρ‚Π° называСтся ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€ΠΎΠΉ. Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π²Ρ‹ ΡƒΠΆΠ΅ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΠ»ΠΈ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π² ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°Ρ… Π΄Π°Π½Π½ΠΎΠΉ ΠΊΠ½ΠΈΠ³ΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ ΡƒΡ‚Π²Π΅Ρ€ΠΆΠ΄Π΅Π½ΠΈΠ΅ Π² ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π΅ начинаСтся с Π½ΠΎΠ²ΠΎΠΉ строки, Π° ΠΌΠ΅ΠΆΠ΄Ρƒ собой ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹ Ρ€Π°Π·Π΄Π΅Π»ΡΡŽΡ‚ΡΡ ΠΎΠ΄Π½ΠΎΠΉ пустой строкой. НапримСр, ΠΎΠ΄ΠΈΠ½ ΠΈΠ· способов опрСдСлСния ΠΏΡ€Π΅Π΄ΠΈΠΊΠ°Ρ‚Π° эквивалСнтности для мноТСств (ΠΏΡ€ΠΈ прСдставлСнии мноТСств Π² Π²ΠΈΠ΄Π΅ списков) состоит Π² использовании Ρ‚Ρ€Π΅Ρ… ΠΏΡ€Π΅Π΄ΠΈΠΊΠ°Ρ‚ΠΎΠ², ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… опрСдСляСтся с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹ ΠΈΠ· Π΄Π²ΡƒΡ… строк:


Ρ€Π°Π²ΠΌΠ½ΠΎΠΆ(Π₯,Π₯):-!.

Ρ€Π°Π²ΠΌΠ½ΠΎΠΆ(Π₯,Y):- равспис(Π₯,Y).

равспис([],[]).

равспис([Π₯|L1],L2):- ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ(Π₯,L2,LΠ—), равспис(L1,LΠ—).

ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ(Π₯,[Π₯|Y],Y).

ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ(Π₯,[Y|L1],[Y|L2]):- ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ(Π₯,L1,L2).


Π”Π°Π½Π½Ρ‹ΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π½Π΅ являСтся Π½Π°ΠΈΠ»ΡƒΡ‡ΡˆΠΈΠΌ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ΠΌ эквивалСнтности мноТСств, ΠΎΠ΄Π½Π°ΠΊΠΎ ΠΎΠ½ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚, ΠΊΠ°ΠΊ Π½ΡƒΠΆΠ½ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ‰Π°Ρ‚ΡŒ тСксты ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€. Π—Π°ΠΌΠ΅Ρ‚ΠΈΠΌ, Ρ‡Ρ‚ΠΎ утвСрТдСния ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹ сгруппированы вмСстС, Π° ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹ Ρ€Π°Π·Π΄Π΅Π»ΡΡŽΡ‚ΡΡ пустой строкой. Π”Ρ€ΡƒΠ³ΠΎΠ΅ соглашСниС, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΏΡ€ΠΈΠ΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ΡΡ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ программисты Π½Π° ΠŸΡ€ΠΎΠ»ΠΎΠ³Π΅, - это ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ ΡƒΡ‚Π²Π΅Ρ€ΠΆΠ΄Π΅Π½ΠΈΠ΅ Π½Π° ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΉ строкС, Ссли ΠΎΠ½ΠΎ Π½Π° Π½Π΅ΠΉ умСщаСтся. Если Π½Π΅Ρ‚, Ρ‚ΠΎ ΠΏΠΈΡΠ°Ρ‚ΡŒ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ утвСрТдСния ΠΈ Π·Π½Π°ΠΊ ':-' Π½Π° ΠΏΠ΅Ρ€Π²ΠΎΠΉ строкС, Π° ΠΊΠ°ΠΆΠ΄ΡƒΡŽ Ρ†Π΅Π»ΡŒ Π² ΠΊΠΎΠ½ΡŠΡŽΠ½ΠΊΡ†ΠΈΠΈ Ρ†Π΅Π»Π΅ΠΉ ΠΏΠΈΡΠ°Ρ‚ΡŒ с Π½ΠΎΠ²ΠΎΠΉ строки со сдвигом. Для ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° рассмотрим запись ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ пороТдСния всСх пСрСстановок списка:


пСрСст([],[]).

пСрСст(L,[Н|Π’]):-

 ΠΏΡ€ΠΈΡΠΎΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ(Y,[Н|U],L),

 ΠΏΡ€ΠΈΡΠΎΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ(V,U,W),

 ΠΏΠ΅Ρ€Π΅ΡΡ‚(W,T).

Π’ этом ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠΈ пСрСстановки элСмСнтов списка выполняСт ΠΏΡ€Π΅Π΄ΠΈΠΊΠ°Ρ‚ ΠΏΡ€ΠΈΡΠΎΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ, Π° ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ Π²ΠΎΠ·Π²Ρ€Π°Ρ‚Π° ΠΏΡ€ΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ΅ вновь ΡΠΎΠ³Π»Π°ΡΠΎΠ²Π°Ρ‚ΡŒ Ρ†Π΅Π»Π΅Π²ΠΎΠ΅ ΡƒΡ‚Π²Π΅Ρ€ΠΆΠ΄Π΅Π½ΠΈΠ΅ пСрСст(Π₯, Y) обСспСчиваСт ΠΏΠΎΡ€ΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅ ΠΈΠ· X Π½ΠΎΠ²ΠΎΠΉ пСрСстановки Y. Π‘Π»Π΅Π΄ΡƒΠ΅Ρ‚ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° способ размСщСния Π½Π° страницС ΠΊΠΎΠ½ΡŠΡŽΠ½ΠΊΡ‚ΠΎΠ² Π²Ρ‚ΠΎΡ€ΠΎΠ³ΠΎ утвСрТдСния.

Π“Π»Π°Π²Π½ΠΎΠ΅ – ΠΎΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ свой Π²Ρ‹Π±ΠΎΡ€ Π½Π° ΠΊΠ°ΠΊΠΎΠΌ-Π»ΠΈΠ±ΠΎ согласованном Π½Π°Π±ΠΎΡ€Π΅ ΠΏΡ€Π°Π²ΠΈΠ» оформлСния тСкста ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, Π° Π½Π° ΠΊΠ°ΠΊΠΎΠΌ – Π½Π΅ Ρ‚Π°ΠΊ ΡƒΠΆ Π²Π°ΠΆΠ½ΠΎ. Как ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, ΠΏΠΎΠ»Π΅Π·Π½ΠΎ Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ, Π½Π°Π΄Π»Π΅ΠΆΠ°Ρ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ Π³Ρ€ΡƒΠΏΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚Π΅Ρ€ΠΌΡ‹, Π² случаС сомнСний ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚Π° выполнСния ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ – ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΡ€ΡƒΠ³Π»Ρ‹Π΅ скобки, Π° Ρ‚Π°ΠΊΠΆΠ΅ Ρ€Π°Π·ΡƒΠΌΠ½ΠΎ Ρ€Π°ΡΠΏΠΎΡ€ΡΠΆΠ°Ρ‚ΡŒΡΡ пустым пространством (ΠΏΡ€ΠΎΠ±Π΅Π»Π°ΠΌΠΈ ΠΈ пустыми строками). ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΏΠΎΠ΄ΡΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ, ΠΊΠ°ΠΊ слСдуСт ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ структур ΠΈΠ»ΠΈ ΡƒΡ‚Π²Π΅Ρ€ΠΆΠ΄Π΅Π½ΠΈΠΉ: Π² ΠΊΠ°ΠΊΠΎΠΌ порядкС ΠΎΠ½ΠΈ ΠΏΠΎΡΡ‚ΡƒΠΏΠ°ΡŽΡ‚ ΠΈ ΠΊΠ°ΠΊΠΈΠΌ структурам Π΄Π°Π½Π½Ρ‹Ρ… (константам ΠΈΠ»ΠΈ структурам) ΠΎΠ½ΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ. ПолСзно Ρ‚Π°ΠΊΠΆΠ΅ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ Π² коммСнтариях, ΠΊΠ°ΠΊ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ согласования Π΄Π°Π½Π½ΠΎΠ³ΠΎ утвСрТдСния с Π±Π°Π·ΠΎΠΉ Π΄Π°Π½Π½Ρ‹Ρ….

Π’ ΠΏΠ»Π°Π½Π΅ ΠΎΠ±Ρ‰Π΅ΠΉ ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ Ρ€Π°Π·Π΄Π΅Π»ΡΡ‚ΡŒ тСкст ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π° Π±ΠΎΠ»Π΅Π΅ ΠΈΠ»ΠΈ ΠΌΠ΅Π½Π΅Π΅ Π·Π°ΠΌΠΊΠ½ΡƒΡ‚Ρ‹Π΅ части, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΆΠ΅Π»Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ всС ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ списков оказались Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΈ Ρ‚ΠΎΠΌ ΠΆΠ΅ Ρ„Π°ΠΉΠ»Π΅. ΠŸΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° ΠŸΡ€ΠΎΠ»ΠΎΠ³Π°, содСрТащая Π±ΠΎΠ»Π΅Π΅ пяти – дСсяти ΠΏΡ€Π°Π²ΠΈΠ», ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ Ρ‚Ρ€ΡƒΠ΄Π½ΠΎΠΉ для понимания, поэтому ΠΏΡƒΡ‚Π΅ΠΌ опрСдСлСния Π±ΠΎΠ»Π΅Π΅ ΠΌΠ΅Π»ΠΊΠΈΡ… ΠΏΡ€Π΅Π΄ΠΈΠΊΠ°Ρ‚ΠΎΠ² ΠΏΠΎΠΏΡ‹Ρ‚Π°ΠΉΡ‚Π΅ΡΡŒ ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ Π±ΠΎΠ»Π΅Π΅ СстСствСнным ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ Ρ€Π°Π·Π±ΠΈΡ‚ΡŒ Π΅Π΅ Π½Π° части. Если Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΌΠ½ΠΎΠ³ΠΎ Ρ„Π°ΠΊΡ‚ΠΎΠ², Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»Π° упрощСния ΠΈΠ· Ρ€Π°Π·Π΄. 7.12, Ρ‚ΠΎ всС эти Ρ„Π°ΠΊΡ‚Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒΡΡ Π² ΠΎΠ΄Π½ΠΎΠΌ Ρ„Π°ΠΉΠ»Π΅. Π‘ΠΎΠ»ΡŒΡˆΠΎΠ΅ количСство Ρ„Π°ΠΊΡ‚ΠΎΠ² Π»Π΅Π³Ρ‡Π΅ читаСтся, Ρ‡Π΅ΠΌ большоС количСство ΠΏΡ€Π°Π²ΠΈΠ», ΠΈ хотя Π΄Π°ΠΆΠ΅ нСсколько ΠΏΡ€Π°Π²ΠΈΠ» ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Ρ‚Ρ€ΡƒΠ΄Π½Ρ‹ для понимания, ΠΌΠ½ΠΎΠ³ΠΈΠ΅ страницы описания ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΊΡ‚Π° ΠΌΠΎΠ³ΡƒΡ‚ Π½Π΅ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ Π·Π°Ρ‚Ρ€ΡƒΠ΄Π½Π΅Π½ΠΈΠΉ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ сама сСмантика Ρ„Π°ΠΊΡ‚ΠΎΠ² Π±ΠΎΠ»Π΅Π΅ проста.

Π•Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ ΠΌΠΎΠΌΠ΅Π½Ρ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ влияСт Π½Π° Π»Π΅Π³ΠΊΠΎΡΡ‚ΡŒ чтСния ΠŸΡ€ΠΎΠ»ΠΎΠ³-ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ, - это использованиС Ρ‚ΠΎΡ‡ΠΊΠΈ с запятой (Β«ΠΈΠ»ΠΈΒ») ΠΈ Π²ΠΎΡΠΊΠ»ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ Π·Π½Π°ΠΊΠ° («отсСчСниС»). Π‘ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°ΠΌΠΈ, связанными с Ρ‡Ρ€Π΅Π·ΠΌΠ΅Ρ€Π½ΠΎ ΡˆΠΈΡ€ΠΎΠΊΠΈΠΌ использованиСм «отсСчСния», ΠΌΡ‹ познакомились Π² Π³Π». 4. ВсСгда слСдуСт ΠΏΡ‹Ρ‚Π°Ρ‚ΡŒΡΡ ΠΎΠ±ΠΎΠΉΡ‚ΠΈΡΡŒ Π±Π΅Π· ';', Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π·Π° счСт Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ΡƒΡ‚Π²Π΅Ρ€ΠΆΠ΄Π΅Π½ΠΈΠΉ. НапримСр, ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π°Ρ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°:


nospy(X):-

 ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ(Π₯,Π€ΡƒΠ½ΠΊΡ‚ΠΎΡ€,ЧисАрг,А), !,

 (ΠΊΠΎΠ½Ρ‚Ρ€Ρ‚ΠΎΡ‡ΠΊΠ°(_,Π€ΡƒΠ½ΠΊΡ‚ΠΎΡ€,А), !,

  (ΠΎΡ‚ΠΊΠ°Π·(ΠΊΠΎΠ½Ρ‚Ρ€Ρ‚ΠΎΡ‡ΠΊΠ°(Π—Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ, Π€ΡƒΠ½ΠΊΡ‚ΠΎΡ€, ЧисАрг),_),

  устконтрточку(Π—Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ, Π’Π΅Π»ΠΎ),

  ΠΎΡ‚ΠΊΠ°Π·(3Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ, Π’Π΅Π»ΠΎ),

  write('ΠΊΠΎΠ½Ρ‚Ρ€.Ρ‚ΠΎΡ‡ΠΊΠ° с Ρ‚Π΅Ρ€ΠΌΠ°'), ΠΏΠ΅Ρ‡Ρ‚Π΅Ρ€ΠΌ(Π€ΡƒΠ½ΠΊΡ‚ΠΎΡ€, ЧисАрг),

  write(' ΡƒΠ΄Π°Π»Π΅Π½Π°.'),nl,

  fail

   ; true

 )

 ; write('HeΡ‚ ΠΊΠΎΠ½Ρ‚Ρ€.Ρ‚ΠΎΡ‡Π΅ΠΊ Π½Π° Ρ‚Π΅Ρ€ΠΌΠ΅'),

  write(X), put(46), nl

),

!.


Π³ΠΎΡ€Π°Π·Π΄ΠΎ Ρ‚Ρ€ΡƒΠ΄Π½Π΅Π΅ для понимания, Π½Π΅ΠΆΠ΅Π»ΠΈ:

nospy(X):-ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ(Π₯,Π€ΡƒΠ½ΠΊΡ‚ΠΎΡ€,ЧисАрг,А),!,

ΠΏΠΎΠΏΡ‹Ρ‚_ΡƒΠ±Ρ€(Π₯,Π€ΡƒΠ½ΠΊΡ‚ΠΎΡ€,ЧисАрг,А).

ΠΏΠΎΠΏΡ‹Ρ‚_ΡƒΠ±Ρ€(_,Π€ΡƒΠ½ΠΊΡ‚ΠΎΡ€, ЧисАрг,А):- ΠΊΠΎΠ½Ρ‚Ρ€Ρ‚ΠΎΡ‡ΠΊΠ°(_,Π€ΡƒΠ½ΠΊΡ‚ΠΎΡ€,А),!,ΡƒΠ±Ρ€ΠΊΠΎΠ½Ρ‚Ρ€Ρ‚ΠΎΡ‡ΠΊΡƒ(Π€ΡƒΠ½ΠΊΡ‚ΠΎΡ€, ЧисАрг, А).

ΠΏΠΎΠΏΡ‹Ρ‚_ΡƒΠ±Ρ€(Π₯,_,_,_):- write('HeΡ‚ ΠΊΠΎΠ½Ρ‚Ρ€.Ρ‚ΠΎΡ‡Π΅ΠΊ Π½Π° Ρ‚Π΅Ρ€ΠΌΠ΅ '), write(X), put(46), nl,!.

ΡƒΠ±Ρ€ΠΊΠΎΠ½Ρ‚Ρ€Ρ‚ΠΎΡ‡ΠΊΡƒ(Π€ΡƒΠ½ΠΊΡ‚ΠΎΡ€, ЧисАрг, А):-

 ΠΎΡ‚ΠΊΠ°Π·(ΠΊΠΎΠ½Ρ‚Ρ€Ρ‚ΠΎΡ‡ΠΊΠ°(Π—Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ,Π€ΡƒΠ½ΠΊΡ‚ΠΎΡ€, ЧисАрг), _), устконтрточку(Π—Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ,Π’Π΅Π»ΠΎ), ΠΎΡ‚ΠΊΠ°Π·(3Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ, Π’Π΅Π»ΠΎ),

 write('KoΠ½Ρ‚p.Ρ‚ΠΎΡ‡ΠΊΠ° с Ρ‚Π΅Ρ€ΠΌΠ°'), ΠΏΠ΅Ρ‡Ρ‚Π΅Ρ€ΠΌ(Π€ΡƒΠ½ΠΊΡ‚ΠΎΡ€, ЧисАрг), write(' ΡƒΠ΄Π°Π»Π΅Π½Π°.'), nl, fail.

ΡƒΠ±Ρ€ΠΊΠΎΠ½Ρ‚Ρ€Ρ‚ΠΎΡ‡ΠΊΡƒ (_,_,_).


которая Π΄Π΅Π»Π°Π΅Ρ‚ Π² точности Ρ‚ΠΎ ΠΆΠ΅ самоС. Если ΠΆΠ΅ Π²Π°ΠΌ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Β«ΠΈΠ»ΠΈΒ», Ρ‚ΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ Ρ‚Π°ΠΊ ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ тСкст ΠΊΠΎΠ½ΡŠΡŽΠ½ΠΊΡ†ΠΈΠΈ Ρ†Π΅Π»Π΅ΠΉ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Β«ΠΈΠ»ΠΈΒ» Π½Π΅ Ρ‚Π΅Ρ€ΡΠ»ΠΎΡΡŒ срСди Ρ†Π΅Π»Π΅ΠΉ. ПолСзно Ρ‚Π°ΠΊΠΆΠ΅ Π·Π°ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ Ρ†Π΅Π»ΠΈ Π² скобки, Ρ‡Ρ‚ΠΎΠ±Ρ‹ явно Π²Ρ‹Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ дСйствия этого Β«ΠΈΠ»ΠΈΒ».

На протяТСнии всСй ΠΊΠ½ΠΈΠ³ΠΈ ΠΏΠΎΠ΄Ρ‡Π΅Ρ€ΠΊΠΈΠ²Π°Π»Π°ΡΡŒ Π²Π°ΠΆΠ½ΠΎΡΡ‚ΡŒ умСния ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ ΠΏΡ€ΠΈ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΈ ΠΌΠ½ΠΎΠ³ΠΈΡ… Π·Π°Π΄Π°Ρ‡ наряду с ΠΎΠ±Ρ‰ΠΈΠΌ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎΠΌ ΠΈ Π³Ρ€Π°Π½ΠΈΡ‡Π½Ρ‹Π΅ условия. Π’ΡΡŽΠ΄Ρƒ, Π³Π΄Π΅ это Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΠΌΡ‹ ΡΡ‚Π°Ρ€Π°Π»ΠΈΡΡŒ Ρ€Π°Π·ΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ Π³Ρ€Π°Π½ΠΈΡ‡Π½Ρ‹Π΅ условия ΠΏΠ΅Ρ€Π΅Π΄ всСми Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ утвСрТдСниями ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹. Π­Ρ‚ΠΎ выдСляСт Π³Ρ€Π°Π½ΠΈΡ‡Π½Ρ‹Π΅ условия ΠΈ, ΠΊΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, слуТит Π² ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ ΠΌΠ΅Ρ€Π΅ Π·Π°Ρ‰ΠΈΡ‚ΠΎΠΉ ΠΎΡ‚ цикличСских ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠΉ. Однако Π±Ρ‹Π²Π°ΡŽΡ‚ случаи, ΠΊΠΎΠ³Π΄Π° ΠΆΠ΅Π»Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ‰Π°Ρ‚ΡŒ Π³Ρ€Π°Π½ΠΈΡ‡Π½Ρ‹Π΅ условия послС всСх ΡƒΡ‚Π²Π΅Ρ€ΠΆΠ΄Π΅Π½ΠΈΠΉ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹. ΠžΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎ, Ρ‡Ρ‚ΠΎ ΠΏΡ€Π°Π²ΠΈΠ»Π°-Β«Π»ΠΎΠ²ΡƒΡˆΠΊΠΈΒ», с ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ ΠΌΡ‹ ΡƒΠΆΠ΅ ΡΡ‚Π°Π»ΠΊΠΈΠ²Π°Π»ΠΈΡΡŒ нСсколько Ρ€Π°Π·, Π½ΡƒΠΆΠ½ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ‰Π°Ρ‚ΡŒ Π² ΠΊΠΎΠ½Ρ†Π΅ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹.