Jun. 5th, 2012

juan_gandhi: (Default)
По всем каналам пропаганда британского феодализма.

А что, кстати, эта принцесса в розовом, забыл, как её - у неё шапка на голове прямо не держится? Всё что-то на боку. Не моё, конечно, дело, но у неё, наверное, голова кривая?

А впрочем, хер с ними; когда уж брит поймёт, что его собственная бабушка ничем не хуже бабушки мамы Чарлза.
juan_gandhi: (Default)
Нарисовал наконец "композитора аппликативных функторов"
  def andThen[U[_]](u: Applicative[U]) = new Applicative[({type λ[α] = U[T[α]]})#λ] {
    def f1[A, B](f: A => B): (U[T[A]]) => U[T[B]] = u.f1(self.f1(f)) // have to figure out how not to repeat this

    def pure[A](a: A) : U[T[A]] = u.pure(self.pure(a))

// self.ap transforms T[A=>B] to T[A] => T[B]
// u.f1(self.ap) will transform U[T[A=>B]] to U[T[A] => T[B]]
// u.ap will transform the last one to U[T[A]] => U[T[B]]
    implicit def applicable[A, B](utf: U[T[A => B]]) = {
      val uta2tb: U[(T[A]) => T[B]] = u.f1(self.ap[A, B])(utf)
      u.applicable(uta2tb)
    }
  }


Потом детали; и тест потом нарисую. С воскресенья долбил. Ужас. Как учит [livejournal.com profile] dennisgorelik, неэффективно. Надо было лучше пойти на заднем дворе прибрать - это у меня эффективно получается.

Это сейчас восемь утра.
juan_gandhi: (Default)
Если, блин, с помощью верёвки и палки, в смысле, filter, map, some, /:, Stream.iterate, получается вполне работающий быстро прототипизированный код, то ё. Плюс, он же тотальный.

Все проблемы у меня - с полоумным архитектором на самом деле.

Вот пример как я реквест на сервер посылаю (атрибуты изменены):
    case class ScanQuery(someshit: String, location: String) {
      def toMap = Map("_someshit"->(if (someshit.isEmpty) "" else base64("someshit:" + base64(path) + "&_location:" + base64(mount))))
    }


Я не хочу ходить обсуждать такой API, потому что на всё есть отмазка; надоело уже ходить базарить.
juan_gandhi: (Default)


странная это вещь, реальность

только стоило мне завести на гитхабе проект scalakittens, и нарисовать слайдшоу - как у меня на дворе завелись котята

скачут по всему двору

лопают молоко

дерутся за хавчик

прячутся в подвал как только меня увидят

а у меня улыбочка не сползает
juan_gandhi: (Default)
Тут пошла опять такая волна - да на хера нам монады, да на хера нам аппликативные функторы, нас и так хорошо кормят, работать надо эффективно, интегрировать, трясти, некогда думать.

Это смешно.

Я это слышу всю жизнь. Меня всё время спрашивали, с полуусмешкой, на хрена я изучаю эти категории, этот английский, этот испанский, этот си, эту джаву, эту скалу, и т.д. и т.п.

Во-первых, мне интересно.

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

Очень очень давно двое ироничных умников впаривали мне даже, что программирование - бесперспективное занятие, т.к. скоро ЭВМ сами будут ваять программы (это они, может, о компиляторах что прослышали, х.з.)

Но вот чего я не могу понять - это ментальности этих ироничных прагматиков. Они ж вроде такие грамотные инвесторы. Или прикидываются?

P.S. Я всё понял. Спасибо. Тема закрыта.
juan_gandhi: (Default)
object BaseStuff {
  type Comp[F[_], G[_]] = ({type λ[α] = G[F[α]]})#λ
}  

Profile

juan_gandhi: (Default)
Juan-Carlos Gandhi

August 2025

S M T W T F S
      12
3456789
10 11 12 13141516
17181920212223
24252627282930
31      

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Aug. 17th, 2025 01:54 pm
Powered by Dreamwidth Studios