ZuriHac: ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΡƒΠ²Π°Π½Π΅ Π½Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»Π½ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈΡ€Π°Π½Π΅

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

ZuriHac: ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΡƒΠ²Π°Π½Π΅ Π½Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»Π½ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈΡ€Π°Π½Π΅

Π—Π° нас

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

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

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

ZuriHac: ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΡƒΠ²Π°Π½Π΅ Π½Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»Π½ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈΡ€Π°Π½Π΅

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

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

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

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

ZuriHac: ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΡƒΠ²Π°Π½Π΅ Π½Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»Π½ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈΡ€Π°Π½Π΅

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

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

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

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

Pandoc

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

ZuriHac: ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΡƒΠ²Π°Π½Π΅ Π½Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»Π½ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈΡ€Π°Π½Π΅

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

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

$ cat example.html
<h1>Hello, World!</h1>

$ pandoc -f html -t native example.html
[Header 1 ("hello-world",[],[]) [Str "Hello,",Space,Str "World!"]]

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

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

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

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

data Pandoc = Pandoc Meta [Block]

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

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

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

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

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

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

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

whileParser :: Parser Stmt
whileParser = whiteSpace >> statement

ΠŸΡŠΡ€Π²ΠΎ трябва Π΄Π° ΠΏΡ€Π΅Π±Ρ€ΠΎΠΈΡ‚Π΅ ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π»Π°, Π° слСд Ρ‚ΠΎΠ²Π° ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° - ΠΊΠΎΠΉΡ‚ΠΎ ΡΡŠΡ‰ΠΎ ΠΈΠΌΠ° Ρ‚ΠΈΠΏ Parser Stmt.

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

statement :: Parser Stmt
statement = parens statement <|> sequenceOfStmt

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

ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ½ΠΈΡ‚Π΅ Ρ„ΡƒΠ½ΠΊΡ‚ΠΎΡ€ΠΈ сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚ ΠΏΡ€Π΅Π΄ΠΈΠΌΠ½ΠΎ ΠΊΠ°Ρ‚ΠΎ ΠΏΡ€Π΅ΠΊΠΈ ΠΏΡŠΡ‚ΠΈΡ‰Π° Π·Π° ΠΌΠΎΠ½Π°Π΄ΠΈ. НапримСр, оставСтС функцията 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 Π²Π΅Ρ‡Π΅ Ρ…Π²Π°Π½Π°Ρ…ΠΌΠ΅ Π΅Π΄ΠΈΠ½ нСприятСн бъг Π² ΠΊΠΎΠΌΠΏΠΈΠ»Π°Ρ‚ΠΎΡ€Π° Π½Π° GHC Haskell - Π±ΠΈΠ΄Π΅ΠΉΠΊΠΈ ΡƒΠ±ΠΈΡ‚ Π² нСподходящия ΠΌΠΎΠΌΠ΅Π½Ρ‚, Ρ‚ΠΎΠΉ Π³Π΅Π½Π΅Ρ€ΠΈΡ€Π° Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»Π½ΠΈ ΠΎΠ±Π΅ΠΊΡ‚Π½ΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ ΠΈ Π½Π΅ Π³ΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€Π° ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ ΠΏΡ€ΠΈ рСстартиранС. Π‘ΠΊΡ€ΠΈΠΏΡ‚ΠΈΡ€Π°Π½Π΅Ρ‚ΠΎ Ρ‡Ρ€Π΅Π· систСмни извиквания Π½Π°ΠΏΡ€Π°Π²ΠΈ възмоТно Π½Π°Π΄Π΅ΠΆΠ΄Π½ΠΎΡ‚ΠΎ Π²ΡŠΠ·ΠΏΡ€ΠΎΠΈΠ·Π²Π΅ΠΆΠ΄Π°Π½Π΅ Π½Π° Π³Ρ€Π΅ΡˆΠΊΠ°Ρ‚Π° Π² Π΅Π΄Π½ΠΎ изпълнСниС, Π΄ΠΎΠΊΠ°Ρ‚ΠΎ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»Π½ΠΈΡ‚Π΅ убийства Π²ΡŠΠ·ΠΏΡ€ΠΎΠΈΠ·Π²Π΅ΠΆΠ΄Π°Ρ‚ Π³Ρ€Π΅ΡˆΠΊΠ°Ρ‚Π° Π·Π° ΠΎΠΊΠΎΠ»ΠΎ Π΄Π²Π° часа.

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

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

ДобавянС Π½Π° Π½ΠΎΠ² ΠΊΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€