Investigating scalaz, I get this feeling that many things in functional programming rely on implicit assumption of 1:1 correspondence between type and a monoid built from this type. As soon as we want multiple monoids over the same type (say, "and" and "or" for boolean), things get way more complicated and therefore lose their appeal.


Read each of my written expositions thrice. First — at least as you have already become mechanized to read all your contemporary books and newspapers, Second — as if you were reading aloud to another person, And only third — try to fathom the gist of my writings. Only then will you be able to count upon forming your own impartial judgment, proper to yourself alone, on my writings. And only then can my hope be actualized that according to your understanding you will obtain the specific benefit for yourself which I anticipate, and which I wish for you with all my being.


Oolong tea

На обратном пути с Филиппин у меня немного болел живот, и мне захотелось крепкого чаю с сахаром. А стюардесса разносила без сахара. И когда я попросил сахар, стюардесса посмотрела на меня взглядом, в котором недвусмысленно читалось "This is oolong tea, motherfucker. Just try and tell me if you want sugar with that, I fucking dare you". Но, будучи хорошо воспитанной стюардессой, вслух она сказала только "This is oolong tea. Please try it and let me know if you want sugar". Разумеется, я сдался и сказал, что сахара не нужно.


policy update

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

отгадайте, про какой это город

...некрасивые дикие дома под железными крышами, много стен и мало окон, грязные промежутки между домами, заваленные отбросами и трупами домашних животных, большой ров вокруг города и подъемные мосты…


((Int => Int) => Int) => (Int => (Int => Int))

почему-то в скале (Int => Int) => Int - не то же самое, что Int => (Int => Int). теперь мне как-то надо одно превращать в другое. получается, я должен написать метод с сигнатурой ((Int => Int) => Int) => (Int => (Int => Int))?

Update: о, сцуко, там ещё (Int, Int) => Int есть. ну и язычочек!