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>Hello, World!</h1>

$ pandoc -f html -t native example.html
[Header 1 ("hello-world",[],[]) [Str "Π—Π΄Ρ€Π°Π²Π΅ΠΉ," ,Space,Str "Π‘Π²Π΅Ρ‚ΠΎΠ²Π½ΠΈ!"]]

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

Π’Π°ΠΊΠ° Ρ‡Π΅, Ρ‚ΡƒΠΊ ΠΌΠΎΠΆΠ΅ Π΄Π° сС Π²ΠΈΠ΄ΠΈ, Ρ‡Π΅ Π²ΡŠΡ‚Ρ€Π΅ΡˆΠ½ΠΎΡ‚ΠΎ прСдставянС Π΅ рСкурсивна структура, Π² която всяки Π²ΡŠΡ‚Ρ€Π΅ΡˆΠ΅Π½ възСл ΡΡŠΠ΄ΡŠΡ€ΠΆΠ° списък. НапримСр, Π½Π° Π½Π°ΠΉ-Π³ΠΎΡ€Π½ΠΎΡ‚ΠΎ Π½ΠΈΠ²ΠΎ ΠΈΠΌΠ° списък с Π΅Π΄ΠΈΠ½ Π΅Π»Π΅ΠΌΠ΅Π½Ρ‚ β€” Π·Π°Π³Π»Π°Π²ΠΈΠ΅ Π½Π° ΠΏΡŠΡ€Π²ΠΎ Π½ΠΈΠ²ΠΎ с Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΈ "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

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

Π—Π° всички Ρ‚Π΅Π·ΠΈ класовС Π² Haskell ΡΡŠΡ‰Π΅ΡΡ‚Π²ΡƒΠ²Π°Ρ‚ красиви символни ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΈ, ΠΊΠΎΠ΅Ρ‚ΠΎ ΠΏΡ€Π°Π²ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈΡ€Π°Π½Π΅Ρ‚ΠΎ Π½Π° 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