<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>Курс по Elixir (Архив)</title>
    <description>Статии по темите от курса по Elixir във ФМИ (2017 година)</description>
    <link>https://elixir-lang.bg/archive/posts</link>
      <item>
        <title>
          <![CDATA[Meta-програмиране в Elixir част 2]]>
        </title>
        <link>https://elixir-lang.bg/archive/posts/metaprogramming_part2</link>
        <description>
          <![CDATA[<p>Последно се запознахме с AST-то на Elixir, видяхме <a href="https://www.youtube.com/watch?v=IZvpKhA6t8A&amp;feature=youtu.be&amp;t=12m10s">как прилича на LISP</a> и как да боравим с него. Научихме се да използваме <code class="inline">quote</code> и <code class="inline">unquote</code>. Обърнахме операциите плюс и умножение с минус и деление. Накрая си написахме наша версия на <code class="inline">while</code> цикъл.  </p>
<h1>Какво ще правим във втората част за метапрограмиране?</h1>
<a href=https://elixir-lang.bg/archive/posts/metaprogramming_part2>[...]</a>]]>
        </description>
        <pubDate>Wed, 30 Aug 2017 16:50:38 +0000</pubDate>
        <guid isPermaLink="true">https://elixir-lang.bg/archive/posts/metaprogramming_part2</guid>
      </item>
      <item>
        <title>
          <![CDATA[Meta-програмиране в Elixir част 1]]>
        </title>
        <link>https://elixir-lang.bg/archive/posts/metaprogramming_part1</link>
        <description>
          <![CDATA[<p>Какво всъщност е мета програмиране? Накратко, това е възможноста да пишем код, който пише код. Тъй като това е една от онези дефиниции, който не успяват много успешно да обяснят за какво точно става въпрос, нека да видим няколко примера за приложения на мета програмирането.</p>
<h2>Автоматизирано създаване на функции</h2>
<a href=https://elixir-lang.bg/archive/posts/metaprogramming_part1>[...]</a>]]>
        </description>
        <pubDate>Mon, 29 May 2017 10:55:08 +0000</pubDate>
        <guid isPermaLink="true">https://elixir-lang.bg/archive/posts/metaprogramming_part1</guid>
      </item>
      <item>
        <title>
          <![CDATA[Процеси и OTP : Задачи]]>
        </title>
        <link>https://elixir-lang.bg/archive/posts/tasks</link>
        <description>
          <![CDATA[<p>Последната тема (засега) за процеси. Задачите са процеси, които правят главно
едно действие и не комуникират с други процеси, освен когато свършат работата си.
Тогава пращат съобщение на този процес, който е причинил тяхното създаване.</p>
<a href=https://elixir-lang.bg/archive/posts/tasks>[...]</a>]]>
        </description>
        <pubDate>Thu, 18 May 2017 00:33:36 +0000</pubDate>
        <guid isPermaLink="true">https://elixir-lang.bg/archive/posts/tasks</guid>
      </item>
      <item>
        <title>
          <![CDATA[Процеси и OTP : Application]]>
        </title>
        <link>https://elixir-lang.bg/archive/posts/application</link>
        <description>
          <![CDATA[<p><code class="inline">Application</code> е още едно поведение, което идва с <code class="inline">OTP</code>.
Трите поведения - <code class="inline">GenServer</code>, <code class="inline">Supervisor</code> и <code class="inline">Application</code> са свързани.
Обикновено създаваме <code class="inline">Application</code>, който идва със свое дърво от <code class="inline">Supervisor</code>-и,
което както казахме в <a href="/posts/supervision">предишната статия</a>, има за листа</p>
<a href=https://elixir-lang.bg/archive/posts/application>[...]</a>]]>
        </description>
        <pubDate>Mon, 15 May 2017 20:26:35 +0000</pubDate>
        <guid isPermaLink="true">https://elixir-lang.bg/archive/posts/application</guid>
      </item>
      <item>
        <title>
          <![CDATA[Процеси и OTP : Supervisor]]>
        </title>
        <link>https://elixir-lang.bg/archive/posts/supervision</link>
        <description>
          <![CDATA[<p>Продължаваме с друго поведение идващо от <code class="inline">OTP</code> - <code class="inline">supervisor</code> и неговата <code class="inline">Elixir</code>-ска
обвивка - <code class="inline">Supervisor</code>.</p>
<h2>Какво е Supervisor?</h2>
<a href=https://elixir-lang.bg/archive/posts/supervision>[...]</a>]]>
        </description>
        <pubDate>Sat, 13 May 2017 22:08:57 +0000</pubDate>
        <guid isPermaLink="true">https://elixir-lang.bg/archive/posts/supervision</guid>
      </item>
      <item>
        <title>
          <![CDATA[Тип-спецификации и поведения]]>
        </title>
        <link>https://elixir-lang.bg/archive/posts/types_and_behaviours</link>
        <description>
          <![CDATA[<p>Преди да говорим за <code class="inline">OTP</code> и мета-програмиране е добре да споменем една интересна
нотация, идваща от <code class="inline">Erlang</code>. Това е дефиницията на тип-спецификациите и защо
са полезни.
Част от тази спецификация са поведенията, които са ползвани доста в някои <code class="inline">OTP</code></p>
<a href=https://elixir-lang.bg/archive/posts/types_and_behaviours>[...]</a>]]>
        </description>
        <pubDate>Thu, 11 May 2017 21:22:52 +0000</pubDate>
        <guid isPermaLink="true">https://elixir-lang.bg/archive/posts/types_and_behaviours</guid>
      </item>
      <item>
        <title>
          <![CDATA[Връзки между процеси]]>
        </title>
        <link>https://elixir-lang.bg/archive/posts/process_links</link>
        <description>
          <![CDATA[<p>В тази статия ще си говорим за създаване на връзки между процеси. Ще видим и
как да наблюдаваме процеси, както и как да реагираме на грешки в процесите или
на завършването на логиката им.</p>
<a href=https://elixir-lang.bg/archive/posts/process_links>[...]</a>]]>
        </description>
        <pubDate>Tue, 09 May 2017 21:33:57 +0000</pubDate>
        <guid isPermaLink="true">https://elixir-lang.bg/archive/posts/process_links</guid>
      </item>
      <item>
        <title>
          <![CDATA[Устройство и комуникация между процеси]]>
        </title>
        <link>https://elixir-lang.bg/archive/posts/process_internals</link>
        <description>
          <![CDATA[<p>Продължаваме по темата ‘процеси и <code class="inline">Elixir</code>’. След като разгледахме защо и как
са се появили в <code class="inline">Erlang</code>, как се създават и как си комуникират, сега е време
да поговорим за тяхната имплементация и по-подробно да поговорим за комуникацията между тях.</p>
<a href=https://elixir-lang.bg/archive/posts/process_internals>[...]</a>]]>
        </description>
        <pubDate>Mon, 24 Apr 2017 21:50:52 +0000</pubDate>
        <guid isPermaLink="true">https://elixir-lang.bg/archive/posts/process_internals</guid>
      </item>
      <item>
        <title>
          <![CDATA[Процеси и състояние]]>
        </title>
        <link>https://elixir-lang.bg/archive/posts/processes_and_state</link>
        <description>
          <![CDATA[<p>Всеки процес в еликсир изпълнява код, написан на функционален език.
Този код е последователен.
Самите процеси, обаче, приличат на актьорите в <code class="inline">Actor</code> модела.
Те са компоненти, които си комуникират чрез съобщения.</p>
<a href=https://elixir-lang.bg/archive/posts/processes_and_state>[...]</a>]]>
        </description>
        <pubDate>Fri, 21 Apr 2017 21:04:15 +0000</pubDate>
        <guid isPermaLink="true">https://elixir-lang.bg/archive/posts/processes_and_state</guid>
      </item>
      <item>
        <title>
          <![CDATA[Процеси]]>
        </title>
        <link>https://elixir-lang.bg/archive/posts/processes</link>
        <description>
          <![CDATA[<p>В тази статия ще си говорим за основните градивни единици на всяка програма в <code class="inline">Elixir</code> - процесите.
Досега ги споменавахме на доста места, защото нямаше как да избегнем това. Всъщност процесите в <code class="inline">Elixir</code>
идват от <code class="inline">Erlang</code>. Когато включим и процесите в описанието на езика, за <code class="inline">Elixir</code> можем да кажем следното:</p>
<a href=https://elixir-lang.bg/archive/posts/processes>[...]</a>]]>
        </description>
        <pubDate>Wed, 19 Apr 2017 21:16:17 +0000</pubDate>
        <guid isPermaLink="true">https://elixir-lang.bg/archive/posts/processes</guid>
      </item>
      <item>
        <title>
          <![CDATA[Вход-изход]]>
        </title>
        <link>https://elixir-lang.bg/archive/posts/input_output</link>
        <description>
          <![CDATA[<p>В тази статия ще се запознаем с функциите, свързани с четене и писане.
Ще разгледаме няколко модула от стандартната библиотека, като <code class="inline">IO</code> и <code class="inline">File</code>.</p>
<h2>Изход с <code class="inline">IO.puts/2</code> и <code class="inline">IO.write/2</code></h2>
<a href=https://elixir-lang.bg/archive/posts/input_output>[...]</a>]]>
        </description>
        <pubDate>Sun, 16 Apr 2017 16:39:09 +0000</pubDate>
        <guid isPermaLink="true">https://elixir-lang.bg/archive/posts/input_output</guid>
      </item>
      <item>
        <title>
          <![CDATA[Грешки]]>
        </title>
        <link>https://elixir-lang.bg/archive/posts/exceptions</link>
        <description>
          <![CDATA[<p>В <code class="inline">Elixir</code>, грешките са предназначени за ситуации, които никога не би трябвало да се случат
при нормални обстоятелства. Това ще рече - ситуации при които зависим от нещо външно и то спре да работи,
зависим от някакви файлове, а тях ги няма, като цяло когато имаме проблем с ресурсите и конфигурацията от които нашата програма
зависи.</p>
<a href=https://elixir-lang.bg/archive/posts/exceptions>[...]</a>]]>
        </description>
        <pubDate>Thu, 13 Apr 2017 21:33:54 +0000</pubDate>
        <guid isPermaLink="true">https://elixir-lang.bg/archive/posts/exceptions</guid>
      </item>
      <item>
        <title>
          <![CDATA[Control Flow]]>
        </title>
        <link>https://elixir-lang.bg/archive/posts/control_flow</link>
        <description>
          <![CDATA[<p>В тази статия ще си говорим за неща, които избягвахме (нарочно) досега.
Целият код в предишните статии е без разделяне на логиката от <code class="inline">if</code>-ове.
Това може би е странно за хора, които за първи път се сблъскват с функционален
език, но в <code class="inline">Elixir</code> такива конструкции често са ненужни.</p>
<a href=https://elixir-lang.bg/archive/posts/control_flow>[...]</a>]]>
        </description>
        <pubDate>Sat, 08 Apr 2017 13:19:07 +0000</pubDate>
        <guid isPermaLink="true">https://elixir-lang.bg/archive/posts/control_flow</guid>
      </item>
      <item>
        <title>
          <![CDATA[Списъци и потоци]]>
        </title>
        <link>https://elixir-lang.bg/archive/posts/lists_streams_recursion</link>
        <description>
          <![CDATA[<p>Един от най-често ползваните типове в Еликсир е списъкът и затова е важно да можем да работим ефективно с него.
В езика има доста инструменти за работа със списъци и потоци (списъци, които се генерират при поискване) и е много важно да знаем как да работим ефективно с тях.
Нека да видим как става това.</p>
<a href=https://elixir-lang.bg/archive/posts/lists_streams_recursion>[...]</a>]]>
        </description>
        <pubDate>Thu, 30 Mar 2017 00:29:32 +0000</pubDate>
        <guid isPermaLink="true">https://elixir-lang.bg/archive/posts/lists_streams_recursion</guid>
      </item>
      <item>
        <title>
          <![CDATA[Протоколи]]>
        </title>
        <link>https://elixir-lang.bg/archive/posts/protocols</link>
        <description>
          <![CDATA[<p>Протоколите са начин за постигане на <em>полиморфизъм</em> в <code class="inline">Elixir</code>.
Те ни предоставят механизъм, чрез който вече съществуващо поведение може да се имплементира за нов тип от данни.
Използвайки протоколи можем да си построим библиотека, която да бъде разширена
от този, който я ползва.</p>
<a href=https://elixir-lang.bg/archive/posts/protocols>[...]</a>]]>
        </description>
        <pubDate>Wed, 29 Mar 2017 18:27:02 +0000</pubDate>
        <guid isPermaLink="true">https://elixir-lang.bg/archive/posts/protocols</guid>
      </item>
      <item>
        <title>
          <![CDATA[Речници и структури]]>
        </title>
        <link>https://elixir-lang.bg/archive/posts/maps_structs</link>
        <description>
          <![CDATA[<p>Отново ще си говорим за структури от данни и модулите около тях.
В <code class="inline">Elixir</code> за асоциативен списък, речник или ключ-стойност структура могат да
се използват няколко неща. Поради развитието на <code class="inline">Erlang</code> и на <code class="inline">Elixir</code> някои
от тях отпаднаха като предпочитани опции и в момента се използват <code class="inline">Map</code>-ове.</p>
<a href=https://elixir-lang.bg/archive/posts/maps_structs>[...]</a>]]>
        </description>
        <pubDate>Fri, 24 Mar 2017 02:01:21 +0000</pubDate>
        <guid isPermaLink="true">https://elixir-lang.bg/archive/posts/maps_structs</guid>
      </item>
      <item>
        <title>
          <![CDATA[Низове]]>
        </title>
        <link>https://elixir-lang.bg/archive/posts/strings</link>
        <description>
          <![CDATA[<p>В тази статия ще разгледаме низовете в <code class="inline">Elixir</code>.
Тъй като низовете представляват <code class="inline">binary</code> структури, ще е добре да прочетете статията <a href="/posts/binaries">Binaries</a> преди тази.
Всички операции свързани с <code class="inline">binaries</code>, които разгледахме, могат да бъдат приложени и
върху стрингове.</p>
<a href=https://elixir-lang.bg/archive/posts/strings>[...]</a>]]>
        </description>
        <pubDate>Wed, 22 Mar 2017 14:47:43 +0000</pubDate>
        <guid isPermaLink="true">https://elixir-lang.bg/archive/posts/strings</guid>
      </item>
      <item>
        <title>
          <![CDATA[Binaries]]>
        </title>
        <link>https://elixir-lang.bg/archive/posts/binaries</link>
        <description>
          <![CDATA[<p>Това е първата статия от серия на тема <em>Модули и структури от данни в Elixir</em>.
Ще се запознаем по-задълбочено с двоичните структури в Elixir, как са представени и
как и за какво биха могли да са ни полезни.</p>
<a href=https://elixir-lang.bg/archive/posts/binaries>[...]</a>]]>
        </description>
        <pubDate>Tue, 21 Mar 2017 12:00:00 +0000</pubDate>
        <guid isPermaLink="true">https://elixir-lang.bg/archive/posts/binaries</guid>
      </item>
      <item>
        <title>
          <![CDATA[Модули, функции и рекурсия]]>
        </title>
        <link>https://elixir-lang.bg/archive/posts/modules_functions_recursion</link>
        <description>
          <![CDATA[<p>Организацията на кода в Elixir става чрез модули. Модулите просто групират множество функции, като обикновенно идеята е функциите в даден модул да извършват някаква обща работа. Например функциите в модула <code class="inline">List</code> предоставят различни операции със списъци, а в стандартния модул String, операции с низове.</p>
<p>Така и когато ние пишем програма на Elixir ще разбиваме функционалността на функции и ще ги групираме в модули.</p>
<a href=https://elixir-lang.bg/archive/posts/modules_functions_recursion>[...]</a>]]>
        </description>
        <pubDate>Sat, 11 Mar 2017 22:26:14 +0000</pubDate>
        <guid isPermaLink="true">https://elixir-lang.bg/archive/posts/modules_functions_recursion</guid>
      </item>
      <item>
        <title>
          <![CDATA[Типове и съпоставяне на образци]]>
        </title>
        <link>https://elixir-lang.bg/archive/posts/pattern_matching_types_and_basics</link>
        <description>
          <![CDATA[<p>В предишната статия, <a href="https://elixir-lang.bg/posts/archive/why_elixir">“Защо Elixir?”</a>,
демонстрирахме някои основни синтактични структури в Elixir.
Тази има за цел да е по-детайлна.
Ще поговорим за определени, наистина базови свойства на езика.</p>
<a href=https://elixir-lang.bg/archive/posts/pattern_matching_types_and_basics>[...]</a>]]>
        </description>
        <pubDate>Sun, 26 Feb 2017 16:49:24 +0000</pubDate>
        <guid isPermaLink="true">https://elixir-lang.bg/archive/posts/pattern_matching_types_and_basics</guid>
      </item>
      <item>
        <title>
          <![CDATA[Защо Elixir?]]>
        </title>
        <link>https://elixir-lang.bg/archive/posts/why_elixir</link>
        <description>
          <![CDATA[<p>Една тема е добре да започне с отговор на въпроса “Защо?”.
Защо трябва да се интересуваме от нея?
Защо ни е полезна.
Въобще защо да се занимаваме с нея?</p>
<a href=https://elixir-lang.bg/archive/posts/why_elixir>[...]</a>]]>
        </description>
        <pubDate>Tue, 14 Feb 2017 21:46:23 +0000</pubDate>
        <guid isPermaLink="true">https://elixir-lang.bg/archive/posts/why_elixir</guid>
      </item>
  </channel>
</rss>
