Към хранилището трябва да направите поне два отделни commit-а, всеки от тях трябва да добавя към хранилището един от следните файлове:
- answers.md
- task.exs
Във файла answers.md, трябва да има следните въпроси придружени с отговор:
- Коя специалност и кой курс сте? (ако не учите във ФМИ го оставете без отговор)
- Защо записахте (посещавате) курса?
- Колко уверен се чувствате в използването на git? (число в интервала [0;10])
- Колко често проверявате мейла си? (едно от: никога, веднъж месечно, веднъж седмично, всеки ден)
Примерен отговор би изглеждал така:
Компютърни науки, пети курс.
Една от основните причини да посещавам курса е, че участвам в организацията му. По-значимата причина е защото смятам, че Elixir е един от най-интерсените езици, с които съм се сблъсквал. Това че е функционален, конкурентният му модел и нестандартните конструкции в езика, засилват интереса ми към Elixir още повече.
6.5/10
Всеки ден (толкова често, че от gmail понякога ме блокират)
Във файла task.exs трябва да има 2 анонимни функции, които са свързани със следните имена:
- if_else - симулираща действието на if клауза в императивните езици. Тя трябва да приема 3 аргумента. Първият аргумент е произволна стойност - ако тя се интерпретира като истина, то резултатът от функцията трябва да е вторият ѝ аргумент. Aко обаче първият аргумент се интерпретира като лъжа, то резултатът трябва да е третият аргумент на функцията. Например:
iex> if_else.(true, "yes", "no")
"yes"
iex> if_else.(:false, "yes", "no")
"no"
- if_else_lazy - подобно на предната функция приема 3 аргумента с разликата, че вторият и третият аргумент са функции на 0 аргумента, като съответната функция трябва да бъде изпълнена само ако нейният резултат трябва да бъде върнат. Например:
iex> truth = fn() ->
...> IO.puts "You are right."
...> "yes"
...> end
#Function<20.52032458/0 in :erl_eval.expr/5>
iex> lie = fn() ->
...> IO.puts "You are lying to me!"
...> "no"
...> end
#Function<20.52032458/0 in :erl_eval.expr/5>
iex> if_else_lazy.(:true, truth, lie)
You are right.
"yes"
iex> if_else_lazy.(false, truth, lie)
You are lying to me!
"no"