<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>Курс по Elixir</title>
    <description>Статии по темите преподавани в курса по Elixir във ФМИ</description>
    <link>https://elixir-lang.bg/materials/posts</link>
      <item>
        <title>
          <![CDATA[Основни типове]]>
        </title>
        <link>https://elixir-lang.bg/materials/posts/types</link>
        <description>
          <![CDATA[<p>Да си говорим какви типове предлага даден език не е много интересно, но пък е нужно да знаем с какво разполагаме.
Ще се опитаме да ви представим някои от типовете набързо, за да можем да продължим с по-интересни неща.
Списъци, речници, структури и низове ще разгледаме по-подробно в следващи публикации, но ще ги споменем и тук.</p>
<a href=https://elixir-lang.bg/materials/posts/types>[...]</a>]]>
        </description>
        <pubDate>Mon, 27 Feb 2023 10:00:00 +0000</pubDate>
        <guid isPermaLink="true">https://elixir-lang.bg/materials/posts/types</guid>
      </item>
      <item>
        <title>
          <![CDATA[Инструментът Mix. Създаване и тестване на проект]]>
        </title>
        <link>https://elixir-lang.bg/materials/posts/mix_tool</link>
        <description>
          <![CDATA[<p>Заедно с <code class="inline">elixir</code>, <code class="inline">elixirc</code> и <code class="inline">iex</code> при инсталацията на Elixir получаваме и <code class="inline">mix</code>. Това е инструмент, който автоматизира и улеснява работата ни за:</p>
<ul>
<li>създаване на приложение/библиотека
</li>
<li>компилиране
</li>
</ul>
<a href=https://elixir-lang.bg/materials/posts/mix_tool>[...]</a>]]>
        </description>
        <pubDate>Mon, 27 Feb 2023 10:00:00 +0000</pubDate>
        <guid isPermaLink="true">https://elixir-lang.bg/materials/posts/mix_tool</guid>
      </item>
      <item>
        <title>
          <![CDATA[Списъци]]>
        </title>
        <link>https://elixir-lang.bg/materials/posts/lists</link>
        <description>
          <![CDATA[<p>Вече разгледахме основните типове като числа и атоми, разгледахме и речниците, време е да разгледаме още един тип в <em>Elixir</em>, който представлява поредица от данни.
Това е списъкът (<em>list</em>).</p>
<h2>Какво представляват списъците</h2>
<a href=https://elixir-lang.bg/materials/posts/lists>[...]</a>]]>
        </description>
        <pubDate>Sun, 26 Feb 2023 16:00:00 +0000</pubDate>
        <guid isPermaLink="true">https://elixir-lang.bg/materials/posts/lists</guid>
      </item>
      <item>
        <title>
          <![CDATA[Получаване и изпращане на домашни]]>
        </title>
        <link>https://elixir-lang.bg/materials/posts/how_to_git</link>
        <description>
          <![CDATA[<p>За домашните в курса <em>Функционално програмиране с Elixir</em> се използва <a href="https://classroom.github.com/">Github Classroom</a>.
Използвайки тази платформа, за да получите и предадете домашно, трябва да направите следните стъпки:</p>
<ul>
<li>Да имате профил в <a href="https://github.com">Github</a>.
</li>
</ul>
<a href=https://elixir-lang.bg/materials/posts/how_to_git>[...]</a>]]>
        </description>
        <pubDate>Fri, 24 Feb 2023 17:00:00 +0000</pubDate>
        <guid isPermaLink="true">https://elixir-lang.bg/materials/posts/how_to_git</guid>
      </item>
      <item>
        <title>
          <![CDATA[Meta-програмиране в Elixir част 2]]>
        </title>
        <link>https://elixir-lang.bg/materials/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>
<a href=https://elixir-lang.bg/materials/posts/metaprogramming_part2>[...]</a>]]>
        </description>
        <pubDate>Thu, 30 May 2019 19:22:35 +0000</pubDate>
        <guid isPermaLink="true">https://elixir-lang.bg/materials/posts/metaprogramming_part2</guid>
      </item>
      <item>
        <title>
          <![CDATA[Meta-програмиране в Elixir част 1]]>
        </title>
        <link>https://elixir-lang.bg/materials/posts/metaprogramming_part1</link>
        <description>
          <![CDATA[<p>Какво всъщност е мета програмиране?
Накратко, това е възможноста да пишем код, който пише код.
Тъй като това е една от онези дефиниции, които не успяват много успешно да обяснят за какво точно става въпрос, нека да видим няколко примера за приложения на мета програмирането.</p>
<a href=https://elixir-lang.bg/materials/posts/metaprogramming_part1>[...]</a>]]>
        </description>
        <pubDate>Thu, 30 May 2019 19:22:35 +0000</pubDate>
        <guid isPermaLink="true">https://elixir-lang.bg/materials/posts/metaprogramming_part1</guid>
      </item>
      <item>
        <title>
          <![CDATA[Връзки между процеси]]>
        </title>
        <link>https://elixir-lang.bg/materials/posts/process_links</link>
        <description>
          <![CDATA[<p>В тази статия ще си говорим за създаване на връзки между процеси. Ще видим и
как да наблюдаваме процеси, както и как да реагираме на грешки в процесите или
на завършването на логиката им.</p>
<a href=https://elixir-lang.bg/materials/posts/process_links>[...]</a>]]>
        </description>
        <pubDate>Sun, 26 May 2019 18:28:15 +0000</pubDate>
        <guid isPermaLink="true">https://elixir-lang.bg/materials/posts/process_links</guid>
      </item>
      <item>
        <title>
          <![CDATA[Устройство и комуникация между процеси]]>
        </title>
        <link>https://elixir-lang.bg/materials/posts/process_internals</link>
        <description>
          <![CDATA[<p>Продължаваме по темата ‘процеси’.
След като разгледахме защо и как са се появили в <em>Erlang</em>, как се създават и как си комуникират, сега е време да поговорим за тяхната имплементация и по-подробно да поговорим за комуникацията между тях.</p>
<h2>Actor модела и Elixir процесите</h2>
<a href=https://elixir-lang.bg/materials/posts/process_internals>[...]</a>]]>
        </description>
        <pubDate>Fri, 24 May 2019 21:50:52 +0000</pubDate>
        <guid isPermaLink="true">https://elixir-lang.bg/materials/posts/process_internals</guid>
      </item>
      <item>
        <title>
          <![CDATA[Конкурентно програмиране II : Процеси]]>
        </title>
        <link>https://elixir-lang.bg/materials/posts/concurrency_processes</link>
        <description>
          <![CDATA[<p>В тази публикация ще си говорим за основните градивни единици на всяка програма в Elixir - процесите.
Досега ги споменавахме на доста места, защото нямаше как да избегнем това. Всъщност процесите в Elixir
идват от Erlang. Когато включим и процесите в описанието на езика, за Elixir можем да кажем следното:</p>
<a href=https://elixir-lang.bg/materials/posts/concurrency_processes>[...]</a>]]>
        </description>
        <pubDate>Mon, 20 May 2019 10:32:21 +0000</pubDate>
        <guid isPermaLink="true">https://elixir-lang.bg/materials/posts/concurrency_processes</guid>
      </item>
      <item>
        <title>
          <![CDATA[Грешки и Вход-Изход]]>
        </title>
        <link>https://elixir-lang.bg/materials/posts/exceptions_and_io</link>
        <description>
          <![CDATA[<p>Видяхме какво представлява Elixir вътре в процесите.
Имаме някаква идея какво представлява Elixir като множество комуникиращи си процеси (ще разберем повече в следващата публикация).
Тъй като всяка програма си комуникира по някакъв начин с външния свят ще обърнем внимание на Elixir и в контекста на външния свят.</p>
<a href=https://elixir-lang.bg/materials/posts/exceptions_and_io>[...]</a>]]>
        </description>
        <pubDate>Tue, 12 Mar 2019 13:43:12 +0000</pubDate>
        <guid isPermaLink="true">https://elixir-lang.bg/materials/posts/exceptions_and_io</guid>
      </item>
      <item>
        <title>
          <![CDATA[Протоколи]]>
        </title>
        <link>https://elixir-lang.bg/materials/posts/protocols</link>
        <description>
          <![CDATA[<p>Протоколите са начин за постигане на <em>полиморфизъм</em> в <em>Elixir</em>.
Те ни предоставят механизъм, чрез който вече съществуващо поведение може да се имплементира за нов тип от данни.
Използвайки протоколи можем да си построим библиотека, която да е възможно да бъде разширявана от този, който я ползва.</p>
<a href=https://elixir-lang.bg/materials/posts/protocols>[...]</a>]]>
        </description>
        <pubDate>Mon, 11 Mar 2019 13:43:12 +0000</pubDate>
        <guid isPermaLink="true">https://elixir-lang.bg/materials/posts/protocols</guid>
      </item>
      <item>
        <title>
          <![CDATA[Низове]]>
        </title>
        <link>https://elixir-lang.bg/materials/posts/strings</link>
        <description>
          <![CDATA[<p>В тази публикация ще разгледаме низовете в <em>Elixir</em>.
Тъй като низовете представляват двоични структури, ще е добре да прочетете първо <a href="https://elixir-lang.bghttps://elixir-lang.bg/materials/posts/binaries">за тях</a>.
Всички операции, свързани с <em>binaries</em>, които разгледахме, могат да бъдат приложени и върху стрингове.</p>
<a href=https://elixir-lang.bg/materials/posts/strings>[...]</a>]]>
        </description>
        <pubDate>Thu, 07 Mar 2019 17:27:00 +0000</pubDate>
        <guid isPermaLink="true">https://elixir-lang.bg/materials/posts/strings</guid>
      </item>
      <item>
        <title>
          <![CDATA[Структури]]>
        </title>
        <link>https://elixir-lang.bg/materials/posts/structs</link>
        <description>
          <![CDATA[<p>С помощта на речниците в <em>Elixir</em> можем да създаваме нещо като свои собствени типове.
Това са <em>Map</em>-ове с име и точно определени ключове, които са обвързани с модул, чиито функции обикновено боравят с тях.</p>
<p>Почти всички функции за работа с речници могат да работят със структури, затова е добре да сте запознати с публикацията на тема <a href="https://elixir-lang.bghttps://elixir-lang.bg/materials/posts/maps">речници</a>, преди да прочетете тази.</p>
<a href=https://elixir-lang.bg/materials/posts/structs>[...]</a>]]>
        </description>
        <pubDate>Thu, 07 Mar 2019 17:23:12 +0000</pubDate>
        <guid isPermaLink="true">https://elixir-lang.bg/materials/posts/structs</guid>
      </item>
      <item>
        <title>
          <![CDATA[Конкурентно програмиране : Задачи и Агенти]]>
        </title>
        <link>https://elixir-lang.bg/materials/posts/concurrency_tasks_agents</link>
        <description>
          <![CDATA[<p><em>Elixir</em> и <em>Erlang</em> са известни като конкурентно-ориентирани езици.
Специализирани са за програми, които изпълняват множество различни операции по едно и също време.
Знаем, че това става с помощта на процесите и досега бяхме съсредоточени в това, какво се случва в един такъв процес.</p>
<a href=https://elixir-lang.bg/materials/posts/concurrency_tasks_agents>[...]</a>]]>
        </description>
        <pubDate>Thu, 07 Mar 2019 17:10:12 +0000</pubDate>
        <guid isPermaLink="true">https://elixir-lang.bg/materials/posts/concurrency_tasks_agents</guid>
      </item>
      <item>
        <title>
          <![CDATA[Двоични структури (Binaries)]]>
        </title>
        <link>https://elixir-lang.bg/materials/posts/binaries</link>
        <description>
          <![CDATA[<p>В тази публикация ще се запознаем по-задълбочено с двоичните структури в <em>Elixir</em>, каква е вътрешната им репрезентация, как и за какво са ни полезни.</p>
<h2>Конструкция</h2>
<a href=https://elixir-lang.bg/materials/posts/binaries>[...]</a>]]>
        </description>
        <pubDate>Thu, 07 Mar 2019 17:00:00 +0000</pubDate>
        <guid isPermaLink="true">https://elixir-lang.bg/materials/posts/binaries</guid>
      </item>
      <item>
        <title>
          <![CDATA[Модулите Enum и Stream]]>
        </title>
        <link>https://elixir-lang.bg/materials/posts/enum_and_stream</link>
        <description>
          <![CDATA[<p>В един функционален език кодът е поредица от трансформации на стойности.
Една функция бива извиквана върху резултата от друга и така докато не се получи желаният краен резултат.</p>
<p>Когато работим с колекции от данни, често искаме дадена функция да се приложи на всички елементи на колекция и да се получи нова колекция,</p>
<a href=https://elixir-lang.bg/materials/posts/enum_and_stream>[...]</a>]]>
        </description>
        <pubDate>Wed, 06 Mar 2019 20:00:00 +0000</pubDate>
        <guid isPermaLink="true">https://elixir-lang.bg/materials/posts/enum_and_stream</guid>
      </item>
      <item>
        <title>
          <![CDATA[Кортежи и списъци от ключове и стойности]]>
        </title>
        <link>https://elixir-lang.bg/materials/posts/tuples_and_keyword_lists</link>
        <description>
          <![CDATA[<p>В тази публикация ще разгледаме кортежите (<em>tuples</em>), използвани много често като резултати от извикването на функции.</p>
<p>Ще разгледаме и списъците от кортежи от по два елемента - първият атом, а вторият произволна стойност,
които се ползват за опционални, именувани параметри на функции, наречени списъци от ключове и стойности (<em>keyword lists</em>).</p>
<a href=https://elixir-lang.bg/materials/posts/tuples_and_keyword_lists>[...]</a>]]>
        </description>
        <pubDate>Wed, 06 Mar 2019 19:10:00 +0000</pubDate>
        <guid isPermaLink="true">https://elixir-lang.bg/materials/posts/tuples_and_keyword_lists</guid>
      </item>
      <item>
        <title>
          <![CDATA[Речници (Maps)]]>
        </title>
        <link>https://elixir-lang.bg/materials/posts/maps</link>
        <description>
          <![CDATA[<p>В <em>Elixir</em> за асоциативен списък, речник или ключ-стойност структура могат да
се използват няколко типа.
Поради развитието на <em>Erlang</em> и на <em>Elixir</em> някои от тях отпаднаха като предпочитани опции и в момента се използват <em>Map</em>-ове.</p>
<a href=https://elixir-lang.bg/materials/posts/maps>[...]</a>]]>
        </description>
        <pubDate>Wed, 06 Mar 2019 19:00:00 +0000</pubDate>
        <guid isPermaLink="true">https://elixir-lang.bg/materials/posts/maps</guid>
      </item>
      <item>
        <title>
          <![CDATA[Съпоставяне на образци и управляващи оператори]]>
        </title>
        <link>https://elixir-lang.bg/materials/posts/pattern_matching_and_control_flow</link>
        <description>
          <![CDATA[<p>Какво означава ‘функционален език за програмиране’?
Има много мнения по въпроса, но почти всеки признава <em>Haskell</em> за функционален език.</p>
<p>Истината е, че има множество от, да ги наречем, симптоми на функционалните езици за програмиране.</p>
<a href=https://elixir-lang.bg/materials/posts/pattern_matching_and_control_flow>[...]</a>]]>
        </description>
        <pubDate>Wed, 06 Mar 2019 18:00:00 +0000</pubDate>
        <guid isPermaLink="true">https://elixir-lang.bg/materials/posts/pattern_matching_and_control_flow</guid>
      </item>
      <item>
        <title>
          <![CDATA[Модули и функции]]>
        </title>
        <link>https://elixir-lang.bg/materials/posts/modules_and_functions</link>
        <description>
          <![CDATA[<p>Организацията на кода в Elixir става чрез модули.
Модулите групират множество функции.
Често тези функции са логически свързани и името на модула отразява това.
Например функциите в модула <code class="inline">List</code> работят със списъци, а тези дефинирани в модула <code class="inline">String</code>, оперират над низове.</p>
<a href=https://elixir-lang.bg/materials/posts/modules_and_functions>[...]</a>]]>
        </description>
        <pubDate>Fri, 22 Feb 2019 00:05:23 +0000</pubDate>
        <guid isPermaLink="true">https://elixir-lang.bg/materials/posts/modules_and_functions</guid>
      </item>
      <item>
        <title>
          <![CDATA[Защо да учим и използваме Elixir?]]>
        </title>
        <link>https://elixir-lang.bg/materials/posts/why_elixir</link>
        <description>
          <![CDATA[<p>Това е блог пост към първата лекция<sup><a href="http://gitpitch.com/ElixirCourse/presentations-2019/?p=welcome">1</a></sup> от курса <em>Функционално програмиране с Elixir</em>, провеждан във ФМИ през летния семестър на 2018/2019 година. В него ще отговорим на въпроса защо бихте учили и използвали Elixir. Но първо малко предистория.</p>
<h3>Erlang</h3>
<a href=https://elixir-lang.bg/materials/posts/why_elixir>[...]</a>]]>
        </description>
        <pubDate>Thu, 21 Feb 2019 00:09:23 +0000</pubDate>
        <guid isPermaLink="true">https://elixir-lang.bg/materials/posts/why_elixir</guid>
      </item>
      <item>
        <title>
          <![CDATA[Процеси и OTP : GenServer]]>
        </title>
        <link>https://elixir-lang.bg/materials/posts/gen_server</link>
        <description>
          <![CDATA[<p>Какво е <code class="inline">OTP</code>?</p>
<p>Всъщност е много неща. От една страна <code class="inline">OTP</code> е платформата с която
се разпространява <code class="inline">Erlang</code>. Версиите на <code class="inline">Erlang</code> са версии на <code class="inline">OTP</code>. Когато си</p>
<a href=https://elixir-lang.bg/materials/posts/gen_server>[...]</a>]]>
        </description>
        <pubDate>Fri, 12 May 2017 21:10:36 +0000</pubDate>
        <guid isPermaLink="true">https://elixir-lang.bg/materials/posts/gen_server</guid>
      </item>
  </channel>
</rss>
