ZuriHac: упраТнявамС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»Π½ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈΡ€Π°Π½Π΅

ΠŸΡ€Π΅Π· юни Ρ‚Π°Π·ΠΈ Π³ΠΎΠ΄ΠΈΠ½Π° Π² малкия ΡˆΠ²Π΅ΠΉΡ†Π°Ρ€ΡΠΊΠΈ Π³Ρ€Π°Π΄ РаппСрсвилС Π²Π΅Ρ‡Π΅ Π·Π° дСсСти ΠΏΡŠΡ‚ сС ΠΏΡ€ΠΎΠ²Π΅Π΄Π΅ ΡΡŠΠ±ΠΈΡ‚ΠΈΠ΅, Π½Π°Ρ€Π΅Ρ‡Π΅Π½ΠΎ ZuriHac. Π’ΠΎΠ·ΠΈ ΠΏΡŠΡ‚ сС ΡΡŠΠ±Ρ€Π°Ρ…Π° Π½Π°Π΄ пСтстотин Π»ΡŽΠ±ΠΈΡ‚Π΅Π»ΠΈ Π½Π° Π₯аскСл, ΠΎΡ‚ Π½Π°Ρ‡ΠΈΠ½Π°Π΅Ρ‰ΠΈ Π΄ΠΎ основатСлитС Π½Π° Π΅Π·ΠΈΠΊΠ°. Π’ΡŠΠΏΡ€Π΅ΠΊΠΈ Ρ‡Π΅ ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ‚ΠΎΡ€ΠΈΡ‚Π΅ Π½Π°Ρ€ΠΈΡ‡Π°Ρ‚ Ρ‚ΠΎΠ²Π° ΡΡŠΠ±ΠΈΡ‚ΠΈΠ΅ Ρ…Π°ΠΊΠ°Ρ‚ΠΎΠ½, Ρ‚ΠΎ Π½Π΅ Π΅ конфСрСнция ΠΈΠ»ΠΈ Ρ…Π°ΠΊΠ°Ρ‚ΠΎΠ½ Π² класичСския смисъл. Π€ΠΎΡ€ΠΌΠ°Ρ‚ΡŠΡ‚ ΠΌΡƒ сС Ρ€Π°Π·Π»ΠΈΡ‡Π°Π²Π° ΠΎΡ‚ Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π½ΠΎΡ‚ΠΎ програмистко ΡΡŠΠ±ΠΈΡ‚ΠΈΠ΅. Π Π°Π·Π±Ρ€Π°Ρ…ΠΌΠ΅ Π·Π° ZuriHac ΠΏΠΎ щастлива случайност, участвахмС Π² Π½Π΅Π³ΠΎ ΠΈ сСга смятамС Π·Π° свой дълг Π΄Π° Ρ€Π°Π·ΠΊΠ°ΠΆΠ΅ΠΌ Π·Π° Π½Π΅ΠΎΠ±ΠΈΡ‡Π°ΠΉΠ½Π°Ρ‚Π° Π½Π°Ρ…ΠΎΠ΄ΠΊΠ°!

ZuriHac: упраТнявамС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»Π½ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈΡ€Π°Π½Π΅

Π—Π° нас

Π’Π°Π·ΠΈ статия Π΅ написана ΠΎΡ‚ Π΄Π²Π°ΠΌΠ° студСнти ΠΎΡ‚ Ρ‚Ρ€Π΅Ρ‚ΠΈ курс Π½Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ°Ρ‚Π° β€žΠŸΡ€ΠΈΠ»ΠΎΠΆΠ½Π° ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ° ΠΈ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠΊΠ°β€œ Π½Π° НИУ Π’Π¨Π­ β€” Π‘Π°Π½ΠΊΡ‚-ΠŸΠ΅Ρ‚Π΅Ρ€Π±ΡƒΡ€Π³: Василий АлфСров ΠΈ Π•Π»ΠΈΠ·Π°Π²Π΅Ρ‚Π° ВасилСнко. Π£Π²Π»Π΅Ρ‡Π΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½ΠΈ към Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»Π½ΠΎΡ‚ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈΡ€Π°Π½Π΅ Π·Π°ΠΏΠΎΡ‡Π½Π° с Ρ†ΠΈΠΊΡŠΠ» ΠΎΡ‚ Π»Π΅ΠΊΡ†ΠΈΠΈ Π½Π° Π”. Н. Москвин ΠΏΡ€Π΅Π· Π²Ρ‚ΠΎΡ€ΠΈ курс Π½Π° унивСрситСта. Π’ ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° Василий участва Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ°Ρ‚Π° Google Summer of Code, Π² Ρ€Π°ΠΌΠΊΠΈΡ‚Π΅ Π½Π° която Ρ€Π°Π±ΠΎΡ‚ΠΈ ΠΏΠΎ Ρ€Π΅Π°Π»ΠΈΠ·ΠΈΡ€Π°Π½Π΅ Π½Π° Π°Π»Π³Π΅Π±Ρ€ΠΈΡ‡Π½ΠΈ Π³Ρ€Π°Ρ„ΠΈ Π½Π° Π΅Π·ΠΈΠΊΠ° Π₯аскСл ΠΏΠΎΠ΄ Ρ€ΡŠΠΊΠΎΠ²ΠΎΠ΄ΡΡ‚Π²ΠΎΡ‚ΠΎ Π½Π° Π΅ΠΊΠΈΠΏΠ° Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Alga. Π•Π»ΠΈΠ·Π°Π²Π΅Ρ‚Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠΈ ΠΏΡ€ΠΈΠ΄ΠΎΠ±ΠΈΡ‚ΠΈΡ‚Π΅ умСния ΠΏΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»Π½ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈΡ€Π°Π½Π΅ Π² курсовата Ρ€Π°Π±ΠΎΡ‚Π°, посвСтСна Π½Π° Ρ€Π΅Π°Π»ΠΈΠ·ΠΈΡ€Π°Π½Π΅Ρ‚ΠΎ Π½Π° Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΡŠΠΌ Π·Π° Π°Π½Ρ‚ΠΈ-унификация с послСдващо ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π² тСорията Π½Π° Ρ‚ΠΈΠΏΠΎΠ²Π΅Ρ‚Π΅.

Π€ΠΎΡ€ΠΌΠ°Ρ‚ Π½Π° ΡΡŠΠ±ΠΈΡ‚ΠΈΠ΅Ρ‚ΠΎ

Π¦Π΅Π»Π΅Π²Π°Ρ‚Π° аудитория Π²ΠΊΠ»ΡŽΡ‡Π²Π° собствСници Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈ с ΠΎΡ‚Π²ΠΎΡ€Π΅Π½ ΠΊΠΎΠ΄, програмисти, ΠΆΠ΅Π»Π°Π΅Ρ‰ΠΈ Π΄Π° участват Π² тяхното Ρ€Π°Π·Π²ΠΈΡ‚ΠΈΠ΅, изслСдоватСли Π½Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»Π½ΠΎΡ‚ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈΡ€Π°Π½Π΅ ΠΈ просто Снтусиасти Π½Π° Π₯аскСл. Π’Π°Π·ΠΈ Π³ΠΎΠ΄ΠΈΠ½Π° Π½Π° мястото Π½Π° ΠΏΡ€ΠΎΠ²Π΅ΠΆΠ΄Π°Π½Π΅ – унивСрситСта HSR Hochschule fΓΌr Technik Rapperswil – сС ΡΡŠΠ±Ρ€Π°Ρ…Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΡ†ΠΈ ΠΎΡ‚ Π½Π°Π΄ пСтдСсСт ΠΎΡ‚ΠΊΡ€ΠΈΡ‚ΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π½Π° Π΅Π·ΠΈΠΊΠ° Haskell ΠΎΡ‚ цял свят, Π·Π° Π΄Π° Ρ€Π°Π·ΠΊΠ°ΠΆΠ°Ρ‚ Π·Π° ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΈΡ‚Π΅ си ΠΈ Π΄Π° ΠΏΡ€ΠΈΠ²Π»Π΅ΠΊΠ°Ρ‚ Π½ΠΎΠ²ΠΈ Ρ…ΠΎΡ€Π° Π·Π° тяхното Ρ€Π°Π·Π²ΠΈΡ‚ΠΈΠ΅.

ZuriHac: упраТнявамС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»Π½ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈΡ€Π°Π½Π΅

Π‘Π½ΠΈΠΌΠΊΠΈ ΠΎΡ‚ Twitter ZuriHac

Π‘Ρ…Π΅ΠΌΠ°Ρ‚Π° Π΅ ΠΌΠ½ΠΎΠ³ΠΎ проста: Π½ΡƒΠΆΠ½ΠΎ Π΅ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»Π½ΠΎ Π΄Π° Π½Π°ΠΏΠΈΡˆΠ΅Ρ‚Π΅ няколко изрСчСния Π·Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° си ΠΈ Π΄Π° Π³ΠΈ ΠΈΠ·ΠΏΡ€Π°Ρ‚ΠΈΡ‚Π΅ Π½Π° ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ‚ΠΎΡ€ΠΈΡ‚Π΅, ΠΊΠΎΠΈΡ‚ΠΎ Ρ‰Π΅ ΠΏΡƒΠ±Π»ΠΈΠΊΡƒΠ²Π°Ρ‚ информацията Π·Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π²ΠΈ Π½Π° страницата Π½Π° ΡΡŠΠ±ΠΈΡ‚ΠΈΠ΅Ρ‚ΠΎ. ОсвСн Ρ‚ΠΎΠ²Π°, Π² ΠΏΡŠΡ€Π²ΠΈΡ Π΄Π΅Π½ Π°Π²Ρ‚ΠΎΡ€ΠΈΡ‚Π΅ Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ‚Π΅ ΠΈΠΌΠ°Ρ‚ ΠΏΠΎ тридСсСт сСкунди, Π·Π° Π΄Π° Ρ€Π°Π·ΠΊΠ°ΠΆΠ°Ρ‚ ΠΌΠ½ΠΎΠ³ΠΎ Π½Π°ΠΊΡ€Π°Ρ‚ΠΊΠΎ ΠΎΡ‚ сцСната Π·Π° Ρ‚ΠΎΠ²Π°, с ΠΊΠΎΠ΅Ρ‚ΠΎ сС Π·Π°Π½ΠΈΠΌΠ°Π²Π°Ρ‚ ΠΈ ΠΊΠ°ΠΊΠ²ΠΎ трябва Π΄Π° сС Π½Π°ΠΏΡ€Π°Π²ΠΈ. Π‘Π»Π΅Π΄ Ρ‚ΠΎΠ²Π° заинтСрСсованитС Ρ…ΠΎΡ€Π° Ρ‚ΡŠΡ€ΡΡΡ‚ Π°Π²Ρ‚ΠΎΡ€ΠΈΡ‚Π΅ ΠΈ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ Ρ€Π°Π·ΠΏΠΈΡ‚Π²Π°Ρ‚ Π·Π° Π·Π°Π΄Π°Ρ‡ΠΈΡ‚Π΅.

Π’ ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° нямамС собствСни ΠΎΡ‚Π²ΠΎΡ€Π΅Π½ΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈ, Π½ΠΎ ΠΌΠ½ΠΎΠ³ΠΎ искамС Π΄Π° допринСсСм Π·Π° Π²Π΅Ρ‡Π΅ ΡΡŠΡ‰Π΅ΡΡ‚Π²ΡƒΠ²Π°Ρ‰ΠΈΡ‚Π΅, Π·Π°Ρ‚ΠΎΠ²Π° сС рСгистрирахмС ΠΊΠ°Ρ‚ΠΎ ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈ участници. ΠŸΡ€Π΅Π· послСднитС Ρ‚Ρ€ΠΈ Π΄Π½ΠΈ Ρ€Π°Π±ΠΎΡ‚ΠΈΡ…ΠΌΠ΅ с Π΄Π²Π΅ Π³Ρ€ΡƒΠΏΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΡ†ΠΈ. Оказа сС, Ρ‡Π΅ ΡΡŠΠ²ΠΌΠ΅ΡΡ‚Π½ΠΎΡ‚ΠΎ ΠΈΠ·ΡƒΡ‡Π°Π²Π°Π½Π΅ Π½Π° ΠΊΠΎΠ΄Π° ΠΈ ΠΆΠΈΠ²Π°Ρ‚Π° комуникация ΠΏΡ€Π°Π²ΠΈ взаимодСйствиСто ΠΌΠ΅ΠΆΠ΄Ρƒ Π°Π²Ρ‚ΠΎΡ€ΠΈΡ‚Π΅ Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ΠΈ ΠΊΠΎΠ½Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΡ€ΠΈΡ‚Π΅ ΠΈΠ·ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»Π½ΠΎ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΈΠ²Π½ΠΎ – Π½Π° ZuriHac успяхмС Π΄Π° сС ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€Π°ΠΌΠ΅ Π² Π½ΠΎΠ²ΠΈ Π·Π° нас области ΠΈ Π΄Π° ΠΏΠΎΠΌΠΎΠ³Π½Π΅ΠΌ Π½Π° Π΄Π²Π° напълно Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ Π΅ΠΊΠΈΠΏΠ°, затваряйки ΠΏΠΎ Π΅Π΄Π½Π° Π·Π°Π΄Π°Ρ‡Π° във всСки ΠΎΡ‚ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ‚Π΅.

ОсвСн Ρ†Π΅Π½Π΅Π½ ΠΎΠΏΠΈΡ‚, Π½Π° ZuriHac бяха изнСсСни ΠΈ няколко Π»Π΅ΠΊΡ†ΠΈΠΈ ΠΈ майсторски класовС. ОсобСно ΠΏΠΎΠΌΠ½ΠΈΠΌ Π΄Π²Π΅ Π»Π΅ΠΊΡ†ΠΈΠΈ. На ΠΏΡŠΡ€Π²Π°Ρ‚Π° ΠΎΡ‚ тях АндрСй ΠœΠΎΡ…ΠΎΠ² ΠΎΡ‚ унивСрситСта Π² Нюкасъл Ρ€Π°Π·ΠΊΠ°Π·Π° Π·Π° сСлСктивнитС Π°ΠΏΠΏΠ»ΠΈΠΊΠ°Ρ‚ΠΈΠ²Π½ΠΈ Ρ„ΡƒΠ½ΠΊΡ‚ΠΎΡ€ΠΈ β€” клас Ρ‚ΠΈΠΏΠΎΠ²Π΅, ΠΊΠΎΠΉΡ‚ΠΎ трябва Π΄Π° бъдС ΠΌΠ΅ΠΆΠ΄ΠΈΠ½Π΅Π½ ΠΌΠ΅ΠΆΠ΄Ρƒ Π°ΠΏΠΏΠ»ΠΈΠΊΠ°Ρ‚ΠΈΠ²Π½ΠΈ Ρ„ΡƒΠ½ΠΊΡ‚ΠΎΡ€ΠΈ ΠΈ ΠΌΠΎΠ½Π°Π΄ΠΈ. На Π΄Ρ€ΡƒΠ³Π°Ρ‚Π° лСкция Π΅Π΄ΠΈΠ½ ΠΎΡ‚ основатСлитС Π½Π° Π₯аскСл, Баймън ΠŸΠ΅ΠΉΡ‚ΠΎΠ½ ДТоунс, Π³ΠΎΠ²ΠΎΡ€ΠΈ Π·Π° Π½Π°Ρ‡ΠΈΠ½Π°, ΠΏΠΎ ΠΊΠΎΠΉΡ‚ΠΎ Π΅ ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΈΡ€Π°Π½ΠΎ ΠΈΠ·Π²Π΅ΠΆΠ΄Π°Π½Π΅Ρ‚ΠΎ Π½Π° Ρ‚ΠΈΠΏΠΎΠ²Π΅ Π² ΠΊΠΎΠΌΠΏΠΈΠ»Π°Ρ‚ΠΎΡ€Π° GHC.

ZuriHac: упраТнявамС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»Π½ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈΡ€Π°Π½Π΅

ЛСкция Π½Π° Баймън ΠŸΠ΅ΠΉΡ‚ΠΎΠ½ ДТоунс. Π‘Π½ΠΈΠΌΠΊΠ° ΠΎΡ‚ Twitter ZuriHac

ΠœΠ°ΠΉΡΡ‚ΠΎΡ€ΡΠΊΠΈΡ‚Π΅ класовС, ΠΏΡ€ΠΎΠ²Π΅ΠΆΠ΄Π°Π½ΠΈ ΠΏΠΎ Π²Ρ€Π΅ΠΌΠ΅ Π½Π° Ρ…Π°ΠΊΠ°Ρ‚ΠΎΠ½Π°, бяха Ρ€Π°Π·Π΄Π΅Π»Π΅Π½ΠΈ Π½Π° Ρ‚Ρ€ΠΈ ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ Π² зависимост ΠΎΡ‚ Π½ΠΈΠ²ΠΎΡ‚ΠΎ Π½Π° ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠ° Π½Π° участницитС. Π—Π°Π΄Π°Ρ‡ΠΈΡ‚Π΅, ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π½ΠΈ Π½Π° участницитС, ΠΏΡ€ΠΈΡΡŠΠ΅Π΄ΠΈΠ½ΠΈΠ»ΠΈ сС към Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°Ρ‚Π° Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈ, ΡΡŠΡ‰ΠΎ ΠΈΠΌΠ°Ρ…Π° Π±Π΅Π»Π΅ΠΆΠΊΠΈ Π·Π° Π½ΠΈΠ²ΠΎ Π½Π° трудност. НСбройно, Π½ΠΎ сплотСно общСство Π½Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»Π½ΠΈ програмисти с радост ΠΏΡ€ΠΈΠ΅ΠΌΠ° Π½ΠΎΠ²Π°Ρ†ΠΈΡ‚Π΅ Π² Ρ€Π΅Π΄ΠΈΡ†ΠΈΡ‚Π΅ си. Π—Π° Π΄Π° Ρ€Π°Π·Π±Π΅Ρ€Π΅ΠΌ Π»Π΅ΠΊΡ†ΠΈΠΈΡ‚Π΅ Π½Π° АндрСй ΠœΠΎΡ…ΠΎΠ² ΠΈ Баймън ΠŸΠ΅ΠΉΡ‚ΠΎΠ½ ДТоунс, ΠΎΠ±Π°Ρ‡Π΅, Π½ΠΈ ΠΏΠΎΠΌΠΎΠ³Π½Π° прСминалият Π² унивСрситСта курс ΠΏΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»Π½ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈΡ€Π°Π½Π΅.

РСгистрацията Π·Π° мСроприятиСто Π΅ Π±Π΅Π·ΠΏΠ»Π°Ρ‚Π½Π° ΠΊΠ°ΠΊΡ‚ΠΎ Π·Π° ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΡ‚Π΅ участници, Ρ‚Π°ΠΊΠ° ΠΈ Π·Π° Π°Π²Ρ‚ΠΎΡ€ΠΈΡ‚Π΅ Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ‚Π΅. ΠŸΠΎΠ΄Π°Π΄ΠΎΡ…ΠΌΠ΅ заявлСния Π·Π° участиС Π² Π½Π°Ρ‡Π°Π»ΠΎΡ‚ΠΎ Π½Π° юни, слСд ΠΊΠΎΠ΅Ρ‚ΠΎ доста Π±ΡŠΡ€Π·ΠΎ бяхмС ΠΏΡ€Π΅Ρ…Π²ΡŠΡ€Π»Π΅Π½ΠΈ ΠΎΡ‚ списъка Π½Π° Ρ‡Π°ΠΊΠ°Ρ‰ΠΈΡ‚Π΅ Π² списъка Π½Π° ΠΏΠΎΡ‚Π²ΡŠΡ€Π΄Π΅Π½ΠΈΡ‚Π΅ участници.

Π‘Π΅Π³Π° Ρ‰Π΅ Ρ€Π°Π·ΠΊΠ°ΠΆΠ΅ΠΌ Π·Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ‚Π΅, Π² Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°Ρ‚Π° Π½Π° ΠΊΠΎΠΈΡ‚ΠΎ участвахмС.

Pandoc

Pandoc Π΅ унивСрсалСн ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ²Π°Ρ‚Π΅Π» Π½Π° тСкстови Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΈ, Π²ΡΡŠΡ‰Π½ΠΎΡΡ‚ β€” ΠΎΡ‚ всСки Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ Π² всСки. НапримСр, ΠΎΡ‚ docx Π² pdf ΠΈΠ»ΠΈ ΠΎΡ‚ Markdown Π² MediaWiki. НСговият Π°Π²Ρ‚ΠΎΡ€ Π”ΠΆΠΎΠ½ ΠœΠ°ΠΊΡ„Π°Ρ€Π»Π΅ΠΉΠ½ Π΅ профСсор ΠΏΠΎ философия Π² ΠšΠ°Π»ΠΈΡ„ΠΎΡ€Π½ΠΈΠΉΡΠΊΠΈΡ унивСрситСт Π² Π‘ΡŠΡ€ΠΊΠ»ΠΈ. Π’ΡΡŠΡ‰Π½ΠΎΡΡ‚, Pandoc Π΅ доста извСстСн, ΠΈ някои ΠΎΡ‚ Π½Π°ΡˆΠΈΡ‚Π΅ ΠΏΠΎΠ·Π½Π°Ρ‚ΠΈ бяха ΠΈΠ·Π½Π΅Π½Π°Π΄Π°Π½ΠΈ, ΠΊΠΎΠ³Π°Ρ‚ΠΎ Π½Π°ΡƒΡ‡ΠΈΡ…Π°, Ρ‡Π΅ Pandoc Π΅ написан Π½Π° Π₯аскСл.

ZuriHac: упраТнявамС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»Π½ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈΡ€Π°Π½Π΅

Бписък с Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈ Π½Π° Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΈ, ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ°Π½ΠΈ ΠΎΡ‚ Pandoc. Π’ сайта ΠΈΠΌΠ° ΠΈ цяла Π³Ρ€Π°Ρ„ΠΈΠΊΠ°, Π½ΠΎ Ρ‚Π°Π·ΠΈ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° Π½Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° сС ΠΏΠΎΠ±Π΅Ρ€Π΅ Π² статията.

Π Π°Π·Π±ΠΈΡ€Π° сС, Π² Pandoc Π½Π΅ Π΅ Ρ€Π΅Π°Π»ΠΈΠ·ΠΈΡ€Π°Π½Π° Π΄ΠΈΡ€Π΅ΠΊΡ‚Π½Π° конвСрсия Π·Π° всяка Π΄Π²ΠΎΠΉΠΊΠ° Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈ. Π—Π° Π΄Π° сС ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ° Ρ‚ΠΎΠ»ΠΊΠΎΠ²Π° ΠΎΠ±ΡˆΠΈΡ€Π½ΠΎ мноТСство прСобразувания, сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° стандартно Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π½ΠΎ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅: ΠΏΡŠΡ€Π²ΠΎ цСлият Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ сС ΠΏΡ€Π΅Π²Π΅ΠΆΠ΄Π° Π² спСциално Π²ΡŠΡ‚Ρ€Π΅ΡˆΠ½ΠΎ ΠΌΠ΅ΠΆΠ΄ΠΈΠ½Π½ΠΎ прСдставянС, Π° слСд Ρ‚ΠΎΠ²Π° ΠΏΠΎ Ρ‚ΠΎΠ²Π° мСТдупрСдставянС сС Π³Π΅Π½Π΅Ρ€ΠΈΡ€Π° Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ Π² Π΄Ρ€ΡƒΠ³ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚. Π’ΡŠΡ‚Ρ€Π΅ΡˆΠ½ΠΎΡ‚ΠΎ прСдставянС Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΡ†ΠΈΡ‚Π΅ Π½Π°Ρ€ΠΈΡ‡Π°Ρ‚ β€žASTβ€œ, ΠΊΠΎΠ΅Ρ‚ΠΎ сС Ρ€Π°Π·ΡˆΠΈΡ„Ρ€ΠΎΠ²Π° ΠΊΠ°Ρ‚ΠΎ Abstract Syntax Tree, ΠΈΠ»ΠΈ абстрактно синтаксичСско Π΄ΡŠΡ€Π²ΠΎ. ΠœΠΎΠΆΠ΅Ρ‚Π΅ ΠΌΠ½ΠΎΠ³ΠΎ лСсно Π΄Π° Π²ΠΈΠ΄ΠΈΡ‚Π΅ ΠΌΠ΅ΠΆΠ΄ΠΈΠ½Π½ΠΎΡ‚ΠΎ прСдставянС: Π·Π° Ρ†Π΅Π»Ρ‚Π° просто трябва Π΄Π° Π·Π°Π΄Π°Π΄Π΅Ρ‚Π΅ изходния Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ ΠΊΠ°Ρ‚ΠΎ β€žnativeβ€œ

$ cat example.html
<h1>Π—Π΄Ρ€Π°Π²Π΅ΠΉ, свят!</h1>

$ pandoc -f html -t native example.html
[Header 1 ("hello-world",[],[]) [Str "Π—Π΄Ρ€Π°Π²Π΅ΠΉ,",Space,Str "свят!"]]

Π§ΠΈΡ‚Π°Ρ‚Π΅Π»ΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ са Ρ€Π°Π±ΠΎΡ‚ΠΈΠ»ΠΈ ΠΏΠΎΠ½Π΅ ΠΌΠ°Π»ΠΊΠΎ с Haskell, Π²Π΅Ρ‡Π΅ ΠΌΠΎΠ³Π°Ρ‚ ΠΎΡ‚ Ρ‚ΠΎΠ·ΠΈ малък ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π΄Π° ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠ°Ρ‚, Ρ‡Π΅ Pandoc Π΅ написан ΠΈΠΌΠ΅Π½Π½ΠΎ Π½Π° Haskell: ΠΈΠ·Ρ…ΠΎΠ΄ΡŠΡ‚ ΠΎΡ‚ Ρ‚Π°Π·ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Π° Π΅ прСдставлСниС Π½Π° Π²ΡŠΡ‚Ρ€Π΅ΡˆΠ½ΠΈΡ‚Π΅ структури Π½Π° Pandoc ΠΏΠΎΠ΄ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° Π½Π° Π½ΠΈΠ·, създадСно ΠΏΠΎ ΠΏΠΎΠ΄ΠΎΠ±ΠΈΠ΅ Π½Π° Π½Π°Ρ‡ΠΈΠ½Π°, ΠΏΠΎ ΠΊΠΎΠΉΡ‚ΠΎ ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΎ сС ΠΏΡ€Π°Π²ΠΈ Π² Haskell, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π² стандартната Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°.

Π’Π°ΠΊΠ° Ρ‡Π΅, Ρ‚ΡƒΠΊ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° Π²ΠΈΠ΄ΠΈΡ‚Π΅, Ρ‡Π΅ Π²ΡŠΡ‚Ρ€Π΅ΡˆΠ½ΠΎΡ‚ΠΎ прСдставянС Π΅ рСкурсивна структура, Π² която всСки Π²ΡŠΡ‚Ρ€Π΅ΡˆΠ΅Π½ възСл ΡΡŠΠ΄ΡŠΡ€ΠΆΠ° списък. НапримСр, Π½Π° Π½Π°ΠΉ-високото Π½ΠΈΠ²ΠΎ ΠΈΠΌΠ° списък ΠΎΡ‚ Π΅Π΄ΠΈΠ½ Π΅Π»Π΅ΠΌΠ΅Π½Ρ‚ β€” Π·Π°Π³Π»Π°Π²ΠΈΠ΅ Π½Π° ΠΏΡŠΡ€Π²ΠΎ Π½ΠΈΠ²ΠΎ с Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΈΡ‚Π΅ β€žhello-worldβ€œ,[],[]. Π’ΡŠΡ‚Ρ€Π΅ Π² Ρ‚ΠΎΠ²Π° Π·Π°Π³Π»Π°Π²ΠΈΠ΅ Π΅ скрит списък ΠΎΡ‚ Π½ΠΈΠ· β€žHello,β€œ , ΠΏΡ€ΠΎΠ±Π΅Π» ΠΈ Π½ΠΈΠ· β€žWorld!β€œ.

ΠšΠ°ΠΊΡ‚ΠΎ ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° Π²ΠΈΠ΄ΠΈΠΌ, Π²ΡŠΡ‚Ρ€Π΅ΡˆΠ½ΠΎΡ‚ΠΎ прСдставянС Π½Π΅ сС Ρ€Π°Π·Π»ΠΈΡ‡Π°Π²Π° ΠΌΠ½ΠΎΠ³ΠΎ ΠΎΡ‚ HTML. Π’ΠΎ прСдставлява Π΄ΡŠΡ€Π²ΠΎ, Π² ΠΊΠΎΠ΅Ρ‚ΠΎ всСки Π²ΡŠΡ‚Ρ€Π΅ΡˆΠ΅Π½ възСл ΡΡŠΠΎΠ±Ρ‰Π°Π²Π° ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π° информация Π·Π° Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€Π°Π½Π΅Ρ‚ΠΎ Π½Π° своитС ΠΏΠΎΡ‚ΠΎΠΌΡ†ΠΈ, Π° Π² листата сС Π½Π°ΠΌΠΈΡ€Π° ΡΡŠΠ΄ΡŠΡ€ΠΆΠ°Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°.

Ако слСзСм Π½Π° Π½ΠΈΠ²ΠΎΡ‚ΠΎ Π½Π° ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Π°Ρ‚Π° рСализация, Ρ‚ΠΈΠΏΡŠΡ‚ Π΄Π°Π½Π½ΠΈ Π·Π° цСлия Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ ΠΏΠΎ слСдния Π½Π°Ρ‡ΠΈΠ½:

data Pandoc = Pandoc Meta [Block]

Π’ΡƒΠΊ Block β€” Ρ‚ΠΎΠ²Π° са ΠΈΠΌΠ΅Π½Π½ΠΎ Π²ΡŠΡ‚Ρ€Π΅ΡˆΠ½ΠΈΡ‚Π΅ Π²ΡŠΡ€Ρ…ΠΎΠ²Π΅, Π·Π° ΠΊΠΎΠΈΡ‚ΠΎ става Π΄ΡƒΠΌΠ° ΠΏΠΎ-Π³ΠΎΡ€Π΅, Π° Meta β€” Ρ‚ΠΎΠ²Π° Π΅ мСтаинформация Π·Π° Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°, ΠΊΠ°Ρ‚ΠΎ Π·Π°Π³Π»Π°Π²ΠΈΠ΅, Π΄Π°Ρ‚Π° Π½Π° създаванС, Π°Π²Ρ‚ΠΎΡ€ΠΈ β€” Π·Π° Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈ Ρ‚ΠΎΠ²Π° Π΅ Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΎ ΠΈ Pandoc сС стрСми Π΄Π° Π·Π°ΠΏΠ°Π·ΠΈ Ρ‚Π°Π·ΠΈ информация ΠΏΡ€ΠΈ ΠΏΡ€Π΅Π²ΠΎΠ΄ ΠΎΡ‚ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚.

ΠŸΠΎΡ‡Ρ‚ΠΈ всички конструктори Ρ‚ΠΈΠΏ Block β€” Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Header ΠΈΠ»ΠΈ Para (ΠΏΠ°Ρ€Π°Π³Ρ€Π°Ρ„) β€” ΠΏΡ€ΠΈΠ΅ΠΌΠ°Ρ‚ ΠΊΠ°Ρ‚ΠΎ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΈ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΈ ΠΈ списък ΠΎΡ‚ ΠΏΠΎ-ниски Π½ΠΈΠ²Π° β€” ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΎ Inline. НапримСр, Space ΠΈΠ»ΠΈ Str β€” Ρ‚ΠΎΠ²Π° са конструктори Ρ‚ΠΈΠΏ Inline, Π° HTML-Ρ‚Π΅Π³ΡŠΡ‚
ΡΡŠΡ‰ΠΎ става спСциалСн Inline. НС Π²ΠΈΠΆΠ΄Π°ΠΌΠ΅ смисъл Π΄Π° Π΄Π°Π²Π°ΠΌΠ΅ пълно ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π½Π° Ρ‚Π΅Π·ΠΈ Ρ‚ΠΈΠΏΠΎΠ²Π΅, Π½ΠΎ отбСлязвамС, Ρ‡Π΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° Π²ΠΈΠ΄ΠΈΡ‚Π΅ Ρ‚Π°ΠΊΠΎΠ²Π° Ρ‚ΡƒΠΊ. Ρ‚ΡƒΠΊ.

Π˜Π½Ρ‚Π΅Ρ€Π΅ΡΠ½ΠΎ Π΅, Ρ‡Π΅ Ρ‚ΠΈΠΏΡŠΡ‚ Pandoc Π΅ ΠΌΠΎΠ½ΠΎΠΈΠ΄. Π’ΠΎΠ²Π° ΠΎΠ·Π½Π°Ρ‡Π°Π²Π°, Ρ‡Π΅ ΠΈΠΌΠ° някакъв ΠΏΡ€Π°Π·Π΅Π½ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ ΠΈ Ρ‡Π΅ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΈΡ‚Π΅ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° сС ΡΡŠΠ±ΠΈΡ€Π°Ρ‚ ΠΏΠΎΠΌΠ΅ΠΆΠ΄Ρƒ си. Π’ΠΎΠ²Π° Π΅ ΡƒΠ΄ΠΎΠ±Π½ΠΎ Π·Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ ΠΏΡ€ΠΈ написванСто Π½Π° Reader’и β€” ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π° Π½Π° части с ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»Π½Π° Π»ΠΎΠ³ΠΈΠΊΠ°, Π΄Π° парситС всяка ΠΎΡ‚Π΄Π΅Π»Π½ΠΎ, Π° слСд Ρ‚ΠΎΠ²Π° Π΄Π° ΡΡŠΠ±Π΅Ρ€Π΅Ρ‚Π΅ всичко Π·Π°Π΅Π΄Π½ΠΎ Π² Π΅Π΄ΠΈΠ½ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚. ΠŸΡ€ΠΈ Ρ‚ΠΎΠ²Π° мСтаинформацията Ρ‰Π΅ сС ΡΡŠΠ±Π΅Ρ€Π΅ ΠΎΡ‚ всички части Π½Π° Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π° навСднъТ.

ΠŸΡ€ΠΈ ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚ΠΈΡ€Π°Π½Π΅, Π΄Π° ΠΊΠ°ΠΆΠ΅ΠΌ, ΠΎΡ‚ LaTeX Π² HTML, ΠΏΡŠΡ€Π²ΠΎ спСциалСн ΠΌΠΎΠ΄ΡƒΠ», Π½Π°Ρ€Π΅Ρ‡Π΅Π½ LaTeXReader, ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ²Π° входния Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ Π² AST, слСд ΠΊΠΎΠ΅Ρ‚ΠΎ Π΄Ρ€ΡƒΠ³ ΠΌΠΎΠ΄ΡƒΠ», Π½Π°Ρ€Π΅Ρ‡Π΅Π½ HTMLWriter, ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ²Π° AST Π² HTML. Π‘Π»Π°Π³ΠΎΠ΄Π°Ρ€Π΅Π½ΠΈΠ΅ Π½Π° Ρ‚Π°ΠΊΠ°Π²Π° Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π° Π½Π΅ Π΅ Π½ΡƒΠΆΠ½ΠΎ Π΄Π° ΠΏΠΈΡˆΠ΅Ρ‚Π΅ ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π½ΠΎ число ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚Π°Ρ†ΠΈΠΈ β€” Π΄ΠΎΡΡ‚Π°Ρ‚ΡŠΡ‡Π½ΠΎ Π΅ Π·Π° всСки Π½ΠΎΠ² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ Π΄Π° Π½Π°ΠΏΠΈΡˆΠ΅Ρ‚Π΅ Reader ΠΈ Writer, ΠΈ всички възмоТни Π΄Π²ΠΎΠΉΠΊΠΈ ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚Π°Ρ†ΠΈΠΈ Ρ‰Π΅ сС ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ°Ρ‚ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΡ‡Π½ΠΎ.

Ясно Π΅, Ρ‡Π΅ Ρ‚Π°ΠΊΠ°Π²Π° Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π° ΠΈΠΌΠ° ΠΈ своитС Π½Π΅Π΄ΠΎΡΡ‚Π°Ρ‚ΡŠΡ†ΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ ΠΎΡ‚Π΄Π°Π²Π½Π° са прСдсказани ΠΎΡ‚ спСциалиститС Π² областта Π½Π° Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π°Ρ‚Π° Π½Π° софтуСр. Най-ΡΡŠΡ‰Π΅ΡΡ‚Π²Π΅Π½ΠΎΡ‚ΠΎ Π΅ Ρ†Π΅Π½Π°Ρ‚Π° Π½Π° внСсСнитС ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈ Π² синтактичното Π΄ΡŠΡ€Π²ΠΎ. Ако промяната Π΅ Π΄ΠΎΡΡ‚Π°Ρ‚ΡŠΡ‡Π½ΠΎ сСриозна, Ρ‰Π΅ трябва Π΄Π° ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈΡ‚Π΅ ΠΊΠΎΠ΄Π° във всички Reader’и ΠΈ Writer’и. НапримСр, Π΅Π΄Π½Π° ΠΎΡ‚ Π·Π°Π΄Π°Ρ‡ΠΈΡ‚Π΅ ΠΏΡ€Π΅Π΄ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΡ†ΠΈΡ‚Π΅ Π½Π° Pandoc Π΅ ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ°Ρ‚Π° Π½Π° слоТни Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈ Π½Π° Ρ‚Π°Π±Π»ΠΈΡ†ΠΈ. Π’ ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° Pandoc ΡƒΠΌΠ΅Π΅ само Π΄Π° Ρ€Π°Π±ΠΎΡ‚ΠΈ с Π½Π°ΠΉ-проститС Ρ‚Π°Π±Π»ΠΈΡ†ΠΈ, с Π·Π°Π³Π»Π°Π²ΠΈΠ΅, ΠΊΠΎΠ»ΠΎΠ½ΠΈ ΠΈ стойност Π² всяка ΠΊΠ»Π΅Ρ‚ΠΊΠ°. НапримСр, Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΡŠΡ‚ colspan Π² HTML просто Ρ‰Π΅ бъдС ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€Π°Π½. Π•Π΄Π½Π° ΠΎΡ‚ ΠΏΡ€ΠΈΡ‡ΠΈΠ½ΠΈΡ‚Π΅ Π·Π° Ρ‚Π°ΠΊΠΎΠ²Π° ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π΅ ΠΎΡ‚ΡΡŠΡΡ‚Π²ΠΈΠ΅Ρ‚ΠΎ Π½Π° Π΅Π΄ΠΈΠ½Π½Π° схСма Π·Π° прСдставянС Π½Π° Ρ‚Π°Π±Π»ΠΈΡ†ΠΈΡ‚Π΅ във всички ΠΈΠ»ΠΈ ΠΏΠΎΠ½Π΅ ΠΌΠ½ΠΎΠ³ΠΎ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈ β€” слСдоватСлно, Π½Π΅ Π΅ ясно Π² какъв Π²ΠΈΠ΄ трябва Π΄Π° сС ΡΡŠΡ…Ρ€Π°Π½ΡΠ²Π°Ρ‚ Ρ‚Π°Π±Π»ΠΈΡ†ΠΈΡ‚Π΅ Π² Π²ΡŠΡ‚Ρ€Π΅ΡˆΠ½ΠΎΡ‚ΠΎ прСдставянС. Но Π΄ΠΎΡ€ΠΈ слСд ΠΈΠ·Π±ΠΎΡ€Π° Π½Π° ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎ прСдставянС, Ρ‰Π΅ трябва Π΄Π° ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈΡ‚Π΅ Π°Π±ΡΠΎΠ»ΡŽΡ‚Π½ΠΎ всички Reader’и ΠΈ Writer’и, ΠΊΠΎΠΈΡ‚ΠΎ ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ°Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π° с Ρ‚Π°Π±Π»ΠΈΡ†ΠΈ.

Π•Π·ΠΈΠΊΡŠΡ‚ Haskell Π½Π΅ бСшС ΠΈΠ·Π±Ρ€Π°Π½ само Π·Π°Ρ€Π°Π΄ΠΈ голямата любов Π½Π° Π°Π²Ρ‚ΠΎΡ€ΠΈΡ‚Π΅ към Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»Π½ΠΎΡ‚ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈΡ€Π°Π½Π΅. Haskell Π΅ извСстСн с ΡˆΠΈΡ€ΠΎΠΊΠΈΡ‚Π΅ си Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΠΈ Π·Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π° тСкстовС. Π•Π΄ΠΈΠ½ ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΈΡ‚Π΅ Π΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°Ρ‚Π° parsec β€” Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°, която Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΠΈ ΠΎΡ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»Π½ΠΎΡ‚ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈΡ€Π°Π½Π΅ β€” ΠΌΠΎΠ½ΠΎΠΈΠ΄ΠΈ, ΠΌΠΎΠ½Π°Π΄ΠΈ, Π°ΠΏΠΏΠ»ΠΈΠΊΠ°Ρ‚ΠΈΠ²Π½ΠΈ ΠΈ Π°Π»Ρ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½ΠΈ Ρ„ΡƒΠ½ΠΊΡ‚ΠΎΡ€ΠΈ β€” Π·Π° написванС Π½Π° ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»Π½ΠΈ парсСри. Цялата ΠΌΠΎΡ‰ Π½Π° Parsec ΠΌΠΎΠΆΠ΅ Π΄Π° сС Π²ΠΈΠ΄ΠΈ Π² ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° ΠΎΡ‚ HaskellWiki, ΠΊΡŠΠ΄Π΅Ρ‚ΠΎ сС Ρ€Π°Π·Π³Π»Π΅ΠΆΠ΄Π° пълния парсСр Π½Π° прост ΠΈΠΌΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π΅Π½ Π΅Π·ΠΈΠΊ Π·Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈΡ€Π°Π½Π΅. Π Π°Π·Π±ΠΈΡ€Π° сС, Parsec Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎ сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΈ Π² Pandoc.

Ако Π½Π°ΠΊΡ€Π°Ρ‚ΠΊΠΎ опишСм, ΠΌΠΎΠ½Π°Π΄ΠΈΡ‚Π΅ сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚ Π·Π° послСдоватСлно парсванС, ΠΊΠΎΠ³Π°Ρ‚ΠΎ ΠΏΡŠΡ€Π²ΠΎ ΠΈΠ΄Π²Π° Π΅Π΄Π½ΠΎ, Π° слСд Ρ‚ΠΎΠ²Π° Π΄Ρ€ΡƒΠ³ΠΎ. НапримСр, Π² Ρ‚Π°ΠΊΡŠΠ² ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

whileParser :: Parser Stmt
whileParser = whiteSpace > > statement

ΠŸΡŠΡ€Π²ΠΎ трябва Π΄Π° ΠΏΡ€ΠΎΡ‡Π΅Ρ‚Π΅ΠΌ пустото място, Π° слСд Ρ‚ΠΎΠ²Π° statement β€” ΠΊΠΎΠΉΡ‚ΠΎ ΡΡŠΡ‰ΠΎ ΠΈΠΌΠ° Ρ‚ΠΈΠΏ Parser Stmt.

АлтСрнативнитС Ρ„ΡƒΠ½ΠΊΡ‚ΠΎΡ€ΠΈ сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚ Π·Π° ΠΎΡ‚ΠΊΠ°Ρ‚ Π² случай, Ρ‡Π΅ парсиранСто Π½Π΅ Π΅ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ. НапримСр,

statement :: Parser Stmt
statement = parens statement  sequenceOfStmt

Π’ΠΎΠ²Π° ΠΎΠ·Π½Π°Ρ‡Π°Π²Π°, Ρ‡Π΅ трябва ΠΈΠ»ΠΈ Π΄Π° ΠΎΠΏΠΈΡ‚Π°ΠΌΠ΅ Π΄Π° ΠΏΡ€ΠΎΡ‡Π΅Ρ‚Π΅ΠΌ statement Π² скоби, ΠΈΠ»ΠΈ послСдоватСлно Π΄Π° ΠΎΠΏΠΈΡ‚Π°ΠΌΠ΅ Π΄Π° ΠΏΡ€ΠΎΡ‡Π΅Ρ‚Π΅ΠΌ няколко statement’а.

АппликативнитС Ρ„ΡƒΠ½ΠΊΡ‚ΠΎΡ€ΠΈ сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚ основно ΠΊΠ°Ρ‚ΠΎ ΠΊΡ€Π°Ρ‚ΠΊΠΈ ΠΏΡŠΡ‚ΠΈΡ‰Π° Π·Π° ΠΌΠΎΠ½Π°Π΄ΠΈΡ‚Π΅. НапримСр, Π½Π΅ΠΊΠ° функцията tok ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π° някакъв Ρ‚ΠΎΠΊΠ΅Π½ (Ρ‚ΠΎΠ²Π° Π΅ Ρ€Π΅Π°Π»Π½Π°Ρ‚Π° функция ΠΎΡ‚ LaTeXReader). НСка сС Π·Π°ΠΏΠΎΠ·Π½Π°Π΅ΠΌ с Ρ‚Π°ΠΊΠ°Π²Π° комбинация

const  tok  tok

Вя Ρ‰Π΅ ΠΏΡ€ΠΎΡ‡Π΅Ρ‚Π΅ Π΄Π²Π° Ρ‚ΠΎΠΊΠ΅Π½Π° послСдоватСлно ΠΈ Ρ‰Π΅ Π²ΡŠΡ€Π½Π΅ ΠΏΡŠΡ€Π²ΠΈΡ.

Π—Π° всичкитС Ρ‚Π΅Π·ΠΈ класовС Π² Π₯аскСл ΡΡŠΡ‰Π΅ΡΡ‚Π²ΡƒΠ²Π°Ρ‚ красиви символьни ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΈ, ΠΊΠΎΠ΅Ρ‚ΠΎ ΠΏΡ€Π°Π²ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈΡ€Π°Π½Π΅Ρ‚ΠΎ Π½Π° Reader-ΠΈΡ‚Π΅ Π΄Π° ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π° ΠΊΠ°Ρ‚ΠΎ ASCII-Π°Ρ€Ρ‚. Π‘Π°ΠΌΠΎ ΠΏΠΎΠ³Π»Π΅Π΄Π½Π΅Ρ‚Π΅ Ρ‚ΠΎΠ·ΠΈ Π²Π΅Π»ΠΈΠΊΠΎΠ»Π΅ΠΏΠ΅Π½ ΠΊΠΎΠ΄.

ΠΠ°ΡˆΠΈΡ‚Π΅ Π·Π°Π΄Π°Ρ‡ΠΈ бяха ΡΠ²ΡŠΡ€Π·Π°Π½ΠΈ с LaTeXReader. Π—Π°Π΄Π°Ρ‡Π°Ρ‚Π° Π½Π° Василий бСшС Π΄Π° ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ° ΠΊΠΎΠΌΠ°Π½Π΄ΠΈΡ‚Π΅ mbox ΠΈ hbox, ΠΏΠΎΠ»Π΅Π·Π½ΠΈ ΠΏΡ€ΠΈ написванСто Π½Π° ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈ Π² LaTeX. ΠžΡ‚Π³ΠΎΠ²ΠΎΡ€Π½ΠΎΡΡ‚Ρ‚Π° Π½Π° Π•Π»ΠΈΠ·Π°Π±Π΅Ρ‚Π° бСшС ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ°Ρ‚Π° Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ‚Π° epigraph, която позволява оформянСто Π½Π° Π΅ΠΏΠΈΠ³Ρ€Π°Ρ„ΠΈ Π² LaTeX Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΈ.

Hatrace

Π’ UNIX-ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΈΡ‚Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΈ систСми чСсто Π΅ Ρ€Π΅Π°Π»ΠΈΠ·ΠΈΡ€Π°Π½ систСмСн ΠΏΠΎΠ²ΠΈΠΊ ptrace. Π’ΠΎΠΉ Π΅ ΠΏΠΎΠ»Π΅Π·Π΅Π½ ΠΏΡ€ΠΈ отстраняванС Π½Π° Π³Ρ€Π΅ΡˆΠΊΠΈ ΠΈ симулация Π½Π° срСди Π·Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈ, позволявайки прослСдяванС Π½Π° систСмнитС повиквания, ΠΊΠΎΠΈΡ‚ΠΎ ΠΏΡ€Π°Π²ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ°Ρ‚Π°. НапримСр, ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ»Π΅Π·Π½Π°Ρ‚Π° ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π° strace ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΈΠΌΠ΅Π½Π½ΠΎ ptrace.

Hatrace β€” Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°, която прСдоставя интСрфСйс Π·Π° ptrace Π² Haskell. Π€Π°ΠΊΡ‚ Π΅, Ρ‡Π΅ самият ptrace Π΅ ΠΌΠ½ΠΎΠ³ΠΎ слоТСн ΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅Ρ‚ΠΎ ΠΌΡƒ Π΄ΠΈΡ€Π΅ΠΊΡ‚Π½ΠΎ Π΅ доста Ρ‚Ρ€ΡƒΠ΄Π½ΠΎ, особСно ΠΎΡ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»Π½ΠΈ Π΅Π·ΠΈΡ†ΠΈ.

Hatrace ΠΏΡ€ΠΈ стартиранС Ρ€Π°Π±ΠΎΡ‚ΠΈ ΠΊΠ°Ρ‚ΠΎ strace ΠΈ ΠΏΡ€ΠΈΠ΅ΠΌΠ° ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΈ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΈ. Π Π°Π·Π»ΠΈΠΊΠ°Ρ‚Π° ΠΌΡƒ ΠΎΡ‚ strace Π΅, Ρ‡Π΅ Ρ‚ΠΎΠΉ Π΅ ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°, прСдоставяща ΠΏΠΎ-прост интСрфСйс ΠΎΡ‚ просто ptrace.

Π‘ ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° hatrace Π²Π΅Ρ‡Π΅ бяха ΠΎΡ‚ΠΊΡ€ΠΈΡ‚ΠΈ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ Π² ΠΊΠΎΠΌΠΏΠΈΠ»Π°Ρ‚ΠΎΡ€Π° Π½Π° Haskell GHC β€” Π°ΠΊΠΎ бъдС ΡƒΠ±ΠΈΡ‚ Π² нСподходящ ΠΌΠΎΠΌΠ΅Π½Ρ‚, Ρ‚ΠΎΠΉ Π³Π΅Π½Π΅Ρ€ΠΈΡ€Π° Π½Π΅ΠΊΠΎΡ€Π΅ΠΊΡ‚Π½ΠΈ ΠΎΠ±Π΅ΠΊΡ‚Π½ΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ ΠΈ Π½Π΅ Π³ΠΈ ΠΏΡ€Π΅ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€Π° ΠΏΡ€ΠΈ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ стартиранС. Π‘ΠΊΡ€ΠΈΠΏΡ‚ΠΎΠ²Π°Π½Π΅Ρ‚ΠΎ Π½Π° систСмни повиквания ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈ Π½Π°Π΄Π΅ΠΆΠ΄Π½ΠΎ Π²ΡŠΠ·ΠΏΡ€ΠΎΠΈΠ·Π²Π΅ΠΆΠ΄Π°Π½Π΅ Π½Π° Π³Ρ€Π΅ΡˆΠΊΠ°Ρ‚Π° с Π΅Π΄Π½ΠΎ стартиранС, ΠΊΠΎΠ³Π°Ρ‚ΠΎ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»Π½ΠΈΡ‚Π΅ убивания я ΠΏΡ€ΠΎΠΈΠ·Π²Π΅ΠΆΠ΄Π°Ρ…Π° ΠΏΡ€ΠΈΠ±Π»ΠΈΠ·ΠΈΡ‚Π΅Π»Π½ΠΎ Π·Π° Π΄Π²Π° часа.

Π”ΠΎΠ±Π°Π²ΠΈΡ…ΠΌΠ΅ интСрфСйси Π½Π° систСмни повиквания Π² Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°Ρ‚Π° β€” Π•Π»ΠΈΠ·Π°Π²Π΅Ρ‚Π° Π΄ΠΎΠ±Π°Π²ΠΈ brk, Π° Василий Π΄ΠΎΠ±Π°Π²ΠΈ mmap. Π Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ΠΈΡ‚Π΅ ΠΎΡ‚ Π½Π°ΡˆΠ°Ρ‚Π° Ρ€Π°Π±ΠΎΡ‚Π° позволяват ΠΏΠΎ-просто ΠΈ Ρ‚ΠΎΡ‡Π½ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΈΡ‚Π΅ Π½Π° Ρ‚Π΅Π·ΠΈ систСмни повиквания ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π° с Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°Ρ‚Π°.

Π˜Π·Ρ‚ΠΎΡ‡Π½ΠΈΠΊ: habr.com

ΠšΡƒΠΏΠ΅Ρ‚Π΅ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ хостинг Π·Π° сайтовС с Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ DDoS, VPS VDS ΡΡŠΡ€Π²ΡŠΡ€ΠΈ πŸ”₯ ΠšΡƒΠΏΠ΅Ρ‚Π΅ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ хостинг Π·Π° сайтовС с Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ DDoS, VPS VDS ΡΡŠΡ€Π²ΡŠΡ€ΠΈ | ProHoster