[Перевод] Избегание ада с помощью монад

Мы как программисты иногда попадаем в «программистский ад», место где наши обычные абстракции не справляются с решением ряда повторяющихся проблем.

В данной статье будут рассмотрены такие проблемы, синтаксические конструкции используемые для их решения и наконец как эти проблемы могут быть решены единообразно с помощью монад.

Ад проверки на null

Данная проблема возникает когда несколько частичных функций (функции которые могут не вернуть значение) нужно выполнить последовательно.

Такие функции обычно приводят в глубоко вложенному и сложно читаемому коду с чрезмерным количеством синтаксического шума.

var a = getData();
if (a != null) {
  var b = getMoreData(a);
  if (b != null) {
     var c = getMoreData(b);
     if (c != null) {
        var d = getEvenMoreData(a, c)
        if (d != null) {
          print(d);
        }
     }
  }
}

Читать дальше →
[Перевод] Избегание ада с помощью монад
Source: habrahabr

Цитата #444968

gishpanets> Я так жену на трассе забыл..
Остановились «до кустиков», я, есессна, первый дела сделал. Подходит жена (она всегда сзади ездит), хлопает задней дверью, ну я и поехал…
Очухался я минут через 10, когда моя просьба «Зая, дай попить» осталась без внимания ввиду отсутствия заи…
Ой ребята-а..что я услышал о себе,когда вернулся за ней..лучше б не возвращался )))

А дверь хлопнула, потому что она решила сумку назад положить, а сама впереди сесть!
Цитата #444968
Source: bash

Цитата #444967

serehio: Пришел сын, налил себе воды, говорит, не хочет есть всухомятку.
nade: ну молодец парень, здравая мысль.
serehio: Да, но он ел суп.
Цитата #444967
Source: bash

Цитата #444966

Когда уже появится вирус Робин-Гуд? На старом железе будет всплывать окошко «недостаточно ресурсов для запуска вируса, нате вам денюжку, купите нормальный компьютер».
Цитата #444966
Source: bash

[Перевод] Туториал по AsyncDisplayKit 2.0 (Texture): Начало работы

«Искусство – это все, что вы можете сделать хорошо. Все, что вы можете сделать качественно» (Robert M. Pirsig).

От переводчика:

С появлением autoLayout создавать интерфейс iOS-приложения стало намного проще и быстрее. Вам больше не нужно думать о подгонке размеров под определенные устройства, autoLayout сделает это за вас. Вычисление происходит на основе констрейнтов относительно ближайших элементов. Чем больше таких зависимостей, тем дольше будет строиться autoLayout, и это основная проблема всех приложений с сложным интерфейсом.

Использование AsyncDisplayKit позволит вам на порядок уменьшить объем работ, выполняемых в основном потоке, и реализовать сложные интерфейсы с минимальным количеством кода. Ребята из Raywenderlich сделали подробный и наглядный туториал по работе с ним. Надеюсь, что перевод статьи поможет вам ещё быстрее освоить этот фреймворк.

Читать дальше →
[Перевод] Туториал по AsyncDisplayKit 2.0 (Texture): Начало работы
Source: habrahabr

«Изучение английских слов с EWA»: уроки с любимыми фильмами

Когда учишь иностранный язык, много времени уходит на расширение словарного запаса. Поначалу учить новые слова интересно и просто, но постепенно интерес и мотивация пропадают. Изучать все слова подряд […]
«Изучение английских слов с EWA»: уроки с любимыми фильмами
Source: 4pda

Пост №3114213

Автор: GregorLesnov

Развернуть { «@context»: «http://schema.org», «@type»: «BlogPosting», «mainEntityOfPage»:{ «@type»:»WebPage», «@id»:»http://undertale.reactor.cc/post/3114213″ }, «headline»: «* Давай хе, сестрёнка, скажи «Пзрнэль» * Я мохет… скажешь «Фриск?» * Я знаю,ты сможешь * Все та / Toriel :: Frisk :: Asriel (Asriel Dreemurr) :: Undertale персонажи :: Undertale :: перевел сам :: TC-96 :: Gaster :: фэндомы», «image»: { «@type»: «ImageObject», «url»: «http://img1.joyreactor.cc/pics/post/full/Undertale-%D1%84%D1%8D%D0%BD%D0%B4%D0%BE%D0%BC%D1%8B-TC-96-Toriel-3859409.png», «height»: 10098, «width»: 1129 }, «datePublished»: «2017-05-23T08:58:43+03:00», «dateModified»: «2017-05-23T08:58:43+03:00», «author»: { «@type»: «Person», «name»: «GregorLesnov» }, «publisher»: { «@type»: «Organization», «name»: «JoyReactor.cc», «logo»: { «@type»: «ImageObject», «url»: «http://joyreactor.cc/images/joyreactor_ie6.png», «width»: 207, «height»: 54 } }, «description»: «ки Петель счастливый, здоровый, маленький монстр. Она начнет говорить, когда придет ее время * Почему вы вам двоим не дать ей порисовать? Кажется, Папирус искал вас двоих * ага * Хорошо, мам ©15,45& «=^>£яе.» }
Комментировать 
Пост №3114213
Source: Joyreactor

Цитата #444965

xxx: Кот моей сестры схватил инсульт. Пожалуй, это всё, что вам следует знать о моей сестре.
Цитата #444965
Source: bash

Цитата #444964

xxx: Рутрекер снова обошел роскомнадзор! Те попытались заблокировать сервера-анонсеры, но пираты оперативненько написали приложение, которое блокировку обходит. Наш пиратский фрегат теперь пиратская субмарина, с краденными торпедами!
yyy: Правда с поднятием флага будет тяжело
xxx: Это само собой. Поэтому было решено заменить полный флаг на настольный в каюте капитана.
Цитата #444964
Source: bash

Пост №3114186

Автор: Oborotni

Развернуть { «@context»: «http://schema.org», «@type»: «BlogPosting», «mainEntityOfPage»:{ «@type»:»WebPage», «@id»:»http://furry.reactor.cc/post/3114186″ }, «headline»: «OJ;Hst du bis der Tod euch scheidet^ Treu Tr Seih -^r alle -paßen? / furry f :: furry feline :: Iskra :: furry art :: furry artist :: furry комиксы (furry comics) :: furry (фурри) :: фэндомы», «image»: { «@type»: «ImageObject», «url»: «http://img0.joyreactor.cc/pics/post/full/furry-%D1%84%D1%8D%D0%BD%D0%B4%D0%BE%D0%BC%D1%8B-furry-art-furry-f-3859378.jpeg», «height»: 425, «width»: 500 }, «datePublished»: «2017-05-23T08:26:55+03:00», «dateModified»: «2017-05-23T08:26:55+03:00», «author»: { «@type»: «Person», «name»: «Oborotni» }, «publisher»: { «@type»: «Organization», «name»: «JoyReactor.cc», «logo»: { «@type»: «ImageObject», «url»: «http://joyreactor.cc/images/joyreactor_ie6.png», «width»: 207, «height»: 54 } }, «description»: «» }
Комментировать 
Пост №3114186
Source: Joyreactor