2013-10-09

juan_gandhi: (VP)
2013-10-09 08:21 am

(глупый) вопрос хаскельщикам

А скажите, f $ a b и f a b - одно и тоже? Ведь не одно и то же.

А почему тогда, к примеру, Maybe аппликативен?

instance Applicative Maybe where
   pure = Just
   (Just f) <*> (Just x) = Just (f x)
   _        <*> _        = Nothing


А потому, что ассоциативности хотя и нету, есть ассоциатор. Грубо говоря, a (b c) -> (a b) c, изоморфизм.

Так что зря я стремался.

А для моноидального функтора нужна будет ещё когерентность (coherence).

Вот. Извините.
juan_gandhi: (VP)
2013-10-09 01:12 pm
Entry tags:

μWTF - джава и пустота

void get(java.lang.String s);
juan_gandhi: (VP)
2013-10-09 01:34 pm

Роман Чепляка - это кто?

Он тут есть?

(Сижу читаю блог-посты)
juan_gandhi: (VP)
2013-10-09 04:13 pm
Entry tags:

а вот ещё чего по жизни не хватает

Вот я пишу такой типа тыпычной код (и в продакшен):

  def extractPatientClaims(patient: Patient, index: Int):Result[File] = {
    debug(s"Retrieving claims for patient #$index ($patient)")
    val urls:Result[List[String]] = loadClaimsPage(index) andThen extractPdfUrls
    debug(s"Retrieve these urls: $urls")

    val files = urls flatMap (list => {
      val downloaded:List[Result[File]] = list map downloadPdf
      Result.traverse(downloaded)
    })
    debug(s"Have these files: $files")
  }


То возникает ощущение, что надо какой-то удобный способ задавать частичные функции в виде
- вот функция с таким-то именем
- вот её комиссарское тело
- вот формат объяснительной, почему она сегодня не справилась с заданием

И компонировать такие функции в хвост и в гриву, флатмапать результаты и травёрсать, если они в коллекции оказались (коммутируя коллекцию и частичность).

И усё.
juan_gandhi: (VP)
2013-10-09 08:45 pm

стрелка осциллографа повернулась куда положено

http://www.exler.ru/blog/item/14443/

И Экслер тоже туда же. В гуще негодующих народных масс.

Такие дела.

(А не пошли бы они все нахуй, все эти люди.)