Jun. 23rd, 2022

juan_gandhi: (Default)
 Душевное кино. Многие такого не любят. А я очень.

дыбр

Jun. 23rd, 2022 09:16 pm
juan_gandhi: (Default)
Опять ничего не было. Плаваю, набираю метры. Сотни. Я ж тот еще пловец. В результате все время хочется жрать.
Поэкспериментировали со шторами в библиотеке и спальне. Пока что не пришли к решению.
Две ванные комнаты помыл, третья осталась. На фига нам столько? А куда деваться-то?
Еще у соседки Клаудии спросил, как они справляются с бассейном, нанимают кого? Да щас. Клаудия сама все и делает в смысле бассейна. Вот так, четыре собаки, пять машин, четверо детей, и еще и бассейн. И работа.

Еще возил с книжкой. Дофиксил скрипт, нашел багу. Исправил картинки. И пришла в голову идея выражать категорные конструкции прямо на скале. Ничо так. Вот, например:



  def pullback[X, Y, Z](
    xs: Set[X], ys: Set[Y], f: X => Z, g: Y => Z): Set[(X, Y)] =
    for {
      x <- xs
      y <- ys if f(x) == g(y)
    } yield (x, y)
    
  def equalizer[X, Y](xs: Set[X], f: X => Y, g: X => Y): Set[X] =
    for {
      x <- xs if f(x) == g(x)
    } yield x
    
  def equalizerAsPullback[X, Y](xs: Set[X], f: X => Y, g: X => Y): Set[X] = {
    type Z = (Y, Y)
    val ys = xs map f // the set of values of f
    val f_g: X => Z = (x: X) => (f(x), g(x))
    val id_id: Y => Z = (y: Y) => (y, y)
    pullback[X, Y, Z](xs, ys, f_g, id_id) map (_._1)
  }
    
  def pullbackAsEqualizer[X, Y, Z](xs: Set[X], ys: Set[Y], f: X => Z, g: Y => Z): Set[(X, Y)] = {
    val xys = xs zip ys // this is cartesian product
    equalizer[(X, Y), Z](xys, xy => f(xy._1), xy => g(xy._2))
  }

Profile

juan_gandhi: (Default)
Juan-Carlos Gandhi

November 2025

S M T W T F S
       1
2345678
9101112131415
16171819202122
23242526272829
30      

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Nov. 3rd, 2025 10:31 am
Powered by Dreamwidth Studios