Форум программистов, компьютерный форум, киберфорум
Другие языки программирования
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/8: Рейтинг темы: голосов - 8, средняя оценка - 4.75
Фрилансер
761 / 458 / 146
Регистрация: 06.01.2017
Сообщений: 4,856
1

The 'if' function (Elixir)

22.01.2017, 18:21. Показов 1561. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
условие

Who likes keywords? Nobody likes keywords, so why use them?

You know what keyword I use too much? if! We should make a function called _if, with its arguments as a logical test and two functions/lambdas where the first function is executed if the boolean is true, and the second if it's false, like an if/else statement, so that we don't have to mess around with those nasty keywords! Even so, It should support truthy/falsy types just like the keyword.
задача с кодеварс:

https://www.codewars.com/kata/... ain/elixir

вначале отправил такое решение

Ruby
1
2
3
4
defmodule Conditional do
  def _if(true, fthen, felse), do: fthen.()
  def _if(false, fthen, felse), do: felse.()
end
но оно не прошло тесты. Почему?

хотя такое решение

Ruby
1
2
3
4
5
6
defmodule Conditional do
  def _if(bool, fthen, felse) do
     if bool do fthen.() 
     else felse.() end
  end 
end
подошло
1
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
22.01.2017, 18:21
Ответы с готовыми решениями:

IDE для Elixir
Посоветуйте IDE для программирования на Elixir, пожалуйста.

Понять решение задачи (Elixir)
Я продолжаю изучать Elixir с помощью codewars и вот остановился на задаче Deodorant Evaporator ...

Непонятная структура данных в Elixir
Добрый день, Занимаюсь изучением Elixir и так как не нашел по нему отдельной ветки решил...

Irreducible Sum of Rationals (Elixir)
решаю задачу с https://www.codewars.com/ условие: моя попытка defmodule Sumfracts do ...

4
Модератор
5047 / 3276 / 526
Регистрация: 01.06.2013
Сообщений: 6,806
Записей в блоге: 9
22.01.2017, 20:48 2
Цитата Сообщение от FateOri Посмотреть сообщение
оно не прошло тесты. Почему?
Наверно, потому что не для всех вариантов первого аргумента задано. Посмотрите что будет если подставить не true и не false.
Ruby
1
2
3
4
defmodule Conditional do
  def _if(true, fthen, _), do: fthen.()
  def _if(_, _, felse), do: felse.()
end
1
Фрилансер
761 / 458 / 146
Регистрация: 06.01.2017
Сообщений: 4,856
22.01.2017, 20:54  [ТС] 3
Цитата Сообщение от KolodeznyDiver Посмотреть сообщение
Посмотрите что будет если подставить не true и не false.
все равно не проходит

Time: 689ms Passed: 0 Failed: 2

simple check on common cases (2.4ms)
1) test simple check on common cases (TestConditional)
fixture:5
Assertion with == failed
code: _if(10, fthen, felse) == :then
lhs: :else
rhs: :then
stacktrace:
fixture:11
0
505 / 511 / 42
Регистрация: 12.12.2013
Сообщений: 484
22.01.2017, 21:11 4
Лучший ответ Сообщение было отмечено FateOri как решение

Решение

Про nil забыли.
2
Модератор
5047 / 3276 / 526
Регистрация: 01.06.2013
Сообщений: 6,806
Записей в блоге: 9
22.01.2017, 21:21 5
Ruby
1
2
3
4
defmodule Conditional do
  def _if(false, _, felse), do: felse.()
  def _if(nil, _, felse), do: felse.()
  def _if(_, fthen, _), do: fthen.()
FateOri, Т.е. ваш второй вариант лучше.
1
22.01.2017, 21:21
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
22.01.2017, 21:21
Помогаю со студенческими работами здесь

Не могу понять условие задачи - 3 (Elixir)
https://www.codewars.com/kata/price-of-mangoes/train/elixir я перевожу в яндексе и получаю ...

Не могу понять условие задачи - 5 (Elixir)
https://www.codewars.com/kata/days-in-the-year/train/elixir Не могу нормально перевести условие...

Язык Elixir, что посоветуете новичку?
Здравствуйте. Я новичок в программирование, увлекся этим не давно. На дынный момент читаю книгу...

Не могу понять условие задачи - 4 (Elixir)
Описание https://www.codewars.com/kata/are-there-any-arrows-left/ я не могу взять в толк...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru