Jun. 18th, 2013

juan_gandhi: (VP)
Who is it?
juan_gandhi: (VP)
А прикольно, я годами ломал голову, какая фигня и что делать, если тебе нужен какой-нибудь там список или множество, а ты получаешь с возможной ошибкой, и как это превратить или в список ошибок или в хороший список результатов; ну дык, апликативный функтор, traverse, всек дела. Для хаскельщиков это как бы примитив, а я вот ну типа месяца два только как начал это непринужденно пользовать. Открытий чудных.

val tables = Result.traverse(
  (1 to 2) map (i => ExtractTableRowsV2(s"span#coverageMedicalSpendingPdf table:nth-of-type($i)").map(_.toList.map(_.toList)))
)


Что тут происходит. Я на браузере гоняю код, который выдёргивает таблицы внутри данного спана и возвращает, согласно договору с мозилой, массив массивов строк - или ексепшен бросает с объяснением почему нет; я это дело подхватываю, превращаю массив массивов в список списков; ну мне нужны две таблицы, поэтому я это делаю 1 to 2; но могла вкрасться какая-нибудь ошибка - если таковая есть, то tables будет иметь вид Bad(someErrorList).
juan_gandhi: (VP)
Sorry, something went wrong.

We're working on getting this fixed as soon as we can.

Go Back

Facebook © 2012 · Help

(и календарик прошлогодний)

А потому что скрипт-киддиз одни собрались, нет чтобы хаскельщиков нанять - но хаскельщиков они боятся!
juan_gandhi: (VP)
Did you know that in scala PartialFunction is not a partial function? Namely, you compose two partial functions, the composition's domain is the same as the domain of the first one. Which is STUPID. Paul Phillips says oh, Scala pfs are not Math pfs.

Nice. I know how to bypass it; just use Kleisli for Option, big deal. But well...

I think that every time you break the laws of algebra or category theory, you just set a trap for future users.

Profile

juan_gandhi: (Default)
Juan-Carlos Gandhi

October 2025

S M T W T F S
    1 23 4
5 678 9 1011
12131415161718
19202122232425
262728293031 

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Oct. 10th, 2025 05:01 pm
Powered by Dreamwidth Studios