
Denis
19.05.2017
11:42:25
У нас малая категория почти как Set
Признаки малой категории?) кто скажет?)
Мысли в слух пошли мои))
Так вот

Google

Denis
19.05.2017
11:44:39
Биекция это изоморфизм
Суръекция это эндоморфизм вроде
А инъекция это мономорфизм
Ахах) сижу в кафе и пишу с телефона про морфизмы)
Прийду домой скину классный explanation
Если кому интересно

Aleh
19.05.2017
11:50:08
скидывай конечно)

Denis
19.05.2017
11:52:13
Ок, кто хочет на Киев жс про фп?
Или rx?
Или функторную алгебру

Yumi
19.05.2017
11:54:47
Тебе на вольфраме кодить нужно, а не в жс фп чатике про морфизмы писать. ?

Denis
19.05.2017
11:55:50
Я на хаскелль учусь)
Купил книгу по идрису

Google

Denis
19.05.2017
11:57:28
Хотите понять прикольные штуки - почитайте про F алгебру и рекурсивные схемы)
У др булеана есть порт называется excursion не такой крутой как у кметта
Например напишите dropWhile через параморфизм)
Жду решения))
И ещё я вроде багу нашёл в excursion не в том порядке сворачивается

aodzaki.toko
19.05.2017
12:20:55
Купил книгу по идрису
что за книга? напиши плиз в личку. видел только курс лекций про идрис, от одного из контребъютеров ядра хаскелла,

Yumi
19.05.2017
12:28:18
Тут наверное всем будет интересно, что сразу в личку.

Denis
19.05.2017
12:45:26
она
это же от автора идриса - Эдвина
а курсы от Брагилевского тоже норм
вообще у него еще по ТК есть
я обещал) http://dxdy.ru/post931190.html#p931190

Aleh
19.05.2017
14:36:17
годный рассказ так сказать для самых маленьких)

Denis
19.05.2017
14:36:34
угу
вообще там весь тред интересный

Vitaliy
19.05.2017
15:00:54

Denis
19.05.2017
15:01:44
вообще категории это обобщение про множества
во множествах биекции суръекции и инъекции

Aleh
19.05.2017
15:02:10
Это вроде на курсе алгебры

Google

Aleh
19.05.2017
15:02:19
Ну у менч так было в первом семестре


Denis
19.05.2017
15:02:56
Тут стоит пояснить, что хотя математика и тяготеет к изучению абстрактных объектов, уровень абстракции может быть очень разный. Самая простая абстракция — это переход от «двух яблок», «двух камней» и т. д. к понятию числа 2; переход от «я повернулся боком», «камень повернулся боком» к понятию поворота на 90°. При этом манипулирование предметами заменяется на универсальные законы работы с числами (или с преобразованиями, или с чем-то еще).
Абстракция следующего уровня возникает, когда понимаешь, что правила обращения с числами 2, 3, 15 и т. д. по сути одинаковы. Все эти числа можно складывать, перемножать, для них работают переместительный, сочетательный и другие законы. Иными словами, все целые числа «играют по одним правилам». Поэтому часто полезно оперировать не с конкретными числами, а с новым математическим объектом — кольцом целых чисел. Аналогично, разные повороты предмета в пространстве являются элементами нового математического объекта — группы трехмерных вращений.
Третий уровень абстракции — это когда исчезает «осязаемость» элементов групп, колец, полей. Тут уже рассматриваются не конкретные группы вращений или иных преобразований, а просто абстрактные группы — совокупности элементов со строго очерченными свойствами. Здесь на первый план выходит то, какова структура группы, а не то, из чего она «состоит». Свойства всевозможных непротиворечивых математических структур, безотносительно к тому, где именно эти структуры возникают, изучает абстрактная алгебра.
Теория категорий предлагает подняться еще выше, на четвертый уровень абстракции. В ней изучаются уже не конкретные группы, а сеть математических взаимосвязей между разными группами. Аналогично, изучается сеть взаимосвязей между самыми разными типами пространств или между самыми разными кольцами. Более того, оказывается, что эти сети взаимосвязей (групп, полей, пространств и т. д.) — очень шаблонны. Между ними (между сетями!) можно установить параллели, и с помощью этих параллелей высокого уровня иногда удается решить очень трудные, но вполне конкретные задачи.


Nikita
19.05.2017
15:04:38
сохранил в заметки
спасибо


Aleh
19.05.2017
15:04:46
Тут стоит пояснить, что хотя математика и тяготеет к изучению абстрактных объектов, уровень абстракции может быть очень разный. Самая простая абстракция — это переход от «двух яблок», «двух камней» и т. д. к понятию числа 2; переход от «я повернулся боком», «камень повернулся боком» к понятию поворота на 90°. При этом манипулирование предметами заменяется на универсальные законы работы с числами (или с преобразованиями, или с чем-то еще).
Абстракция следующего уровня возникает, когда понимаешь, что правила обращения с числами 2, 3, 15 и т. д. по сути одинаковы. Все эти числа можно складывать, перемножать, для них работают переместительный, сочетательный и другие законы. Иными словами, все целые числа «играют по одним правилам». Поэтому часто полезно оперировать не с конкретными числами, а с новым математическим объектом — кольцом целых чисел. Аналогично, разные повороты предмета в пространстве являются элементами нового математического объекта — группы трехмерных вращений.
Третий уровень абстракции — это когда исчезает «осязаемость» элементов групп, колец, полей. Тут уже рассматриваются не конкретные группы вращений или иных преобразований, а просто абстрактные группы — совокупности элементов со строго очерченными свойствами. Здесь на первый план выходит то, какова структура группы, а не то, из чего она «состоит». Свойства всевозможных непротиворечивых математических структур, безотносительно к тому, где именно эти структуры возникают, изучает абстрактная алгебра.
Теория категорий предлагает подняться еще выше, на четвертый уровень абстракции. В ней изучаются уже не конкретные группы, а сеть математических взаимосвязей между разными группами. Аналогично, изучается сеть взаимосвязей между самыми разными типами пространств или между самыми разными кольцами. Более того, оказывается, что эти сети взаимосвязей (групп, полей, пространств и т. д.) — очень шаблонны. Между ними (между сетями!) можно установить параллели, и с помощью этих параллелей высокого уровня иногда удается решить очень трудные, но вполне конкретные задачи.
?
Тоже красиво)


Denis
19.05.2017
15:11:46
задача математики находить объекты, операции между ними и соблюдение законов для них
все, что мы можем иметь в программировании это разные виды гомоморфизма


Yumi
19.05.2017
15:34:14
Тут стоит пояснить, что хотя математика и тяготеет к изучению абстрактных объектов, уровень абстракции может быть очень разный. Самая простая абстракция — это переход от «двух яблок», «двух камней» и т. д. к понятию числа 2; переход от «я повернулся боком», «камень повернулся боком» к понятию поворота на 90°. При этом манипулирование предметами заменяется на универсальные законы работы с числами (или с преобразованиями, или с чем-то еще).
Абстракция следующего уровня возникает, когда понимаешь, что правила обращения с числами 2, 3, 15 и т. д. по сути одинаковы. Все эти числа можно складывать, перемножать, для них работают переместительный, сочетательный и другие законы. Иными словами, все целые числа «играют по одним правилам». Поэтому часто полезно оперировать не с конкретными числами, а с новым математическим объектом — кольцом целых чисел. Аналогично, разные повороты предмета в пространстве являются элементами нового математического объекта — группы трехмерных вращений.
Третий уровень абстракции — это когда исчезает «осязаемость» элементов групп, колец, полей. Тут уже рассматриваются не конкретные группы вращений или иных преобразований, а просто абстрактные группы — совокупности элементов со строго очерченными свойствами. Здесь на первый план выходит то, какова структура группы, а не то, из чего она «состоит». Свойства всевозможных непротиворечивых математических структур, безотносительно к тому, где именно эти структуры возникают, изучает абстрактная алгебра.
Теория категорий предлагает подняться еще выше, на четвертый уровень абстракции. В ней изучаются уже не конкретные группы, а сеть математических взаимосвязей между разными группами. Аналогично, изучается сеть взаимосвязей между самыми разными типами пространств или между самыми разными кольцами. Более того, оказывается, что эти сети взаимосвязей (групп, полей, пространств и т. д.) — очень шаблонны. Между ними (между сетями!) можно установить параллели, и с помощью этих параллелей высокого уровня иногда удается решить очень трудные, но вполне конкретные задачи.
Я вот сколько не встречал сильных математиков и когда что-то спрашиваю про Теория категорий, все лезут в википедию, это наверное больше прикладная к компьютерным наукам штука в математике или почему так?


Denis
19.05.2017
15:35:20
ну объяснить крайнюю степень абстракции (даже в квантовой физике применяется ТК) трудно))) даже формулы никто толком не использует, а используют коммутативные диаграммы

Дмитрий
19.05.2017
15:36:29

Yumi
19.05.2017
15:39:08

Yumi
19.05.2017
15:40:25

Denis
19.05.2017
15:40:52
можешь глянуть на recursion schemes + f {co}algebras
поймешь мощь функтора
вот f(x) = x в математике мы знаем и такое же можно написать для типов Fix x ~ x ну и Nu/Mu как max/min экстремумы
начни с чисел Пеано
например Nat = List ()
изоморфно)

Google

Denis
19.05.2017
15:44:33
ведь все это началось с простых лямбд
и выразить любую структуру можно через лямбды (кодировка Черча)

Yumi
19.05.2017
15:47:10
Пошел гуглить, добра.

Vadim
19.05.2017
16:00:04
Привет всем! Появилась задача сделать "функцию-аккумулятор". Это такую которая принимает аргумент, и как-либо комбинирует его с аргументом, который был в предыдущем вызове. Например, складывает с аргументом предыдущего вызова.
Что то, типа такого (в случае, если она складывает с предыдущим вызовом):
adder(5) // => 5
adder(3) // => 8
adder(1) // => 9
Написать такое на чистом js несложно, но может тут могут быть как-либо полезны методы ramda?
Что б создавать такие аккумуляторы с любой произвольной логикой
типа:
// accum(accumulator, seed);
const adder = accum((current, prev) => current + prev, 0);
Короче, можно ли стандартными методами ramda получить что-то типа rxjs.scan (для аккумуляции значений вызовов)?

Denis
19.05.2017
16:20:27
Сид?
Или scan?

Admin
ERROR: S client not available

Denis
19.05.2017
16:22:17
У тебя список из функций или одна функция и её надо вызвать n раз?

Vadim
19.05.2017
16:23:16
Сид?
Сорри, действительно scan ) Сейчас исправлю в вопросе

Denis
19.05.2017
16:23:48
Ну в рамде есть скан

Vadim
19.05.2017
16:24:22

Denis
19.05.2017
16:24:27
Но тебе надо repeat + reduce с начальным значением identity

Vadim
19.05.2017
16:24:47
Тут уже я не понял )

Denis
19.05.2017
16:25:04
Если так то iterate + js generators + take
Это покажу как дома буду
Я на улице

Vadim
19.05.2017
16:25:38

Google

Denis
19.05.2017
16:25:49
Мб так

Vadim
19.05.2017
16:26:11
Я думал вдруг в рамде есть что-то уже удобное для таких задач. Но похоже нет )

Denis
19.05.2017
16:26:24
Та есть
Я написал выше редьюс и репит
Это если ты знаешь сколько раз вызвать
Ну и сверху мемоайзер

Vadim
19.05.2017
16:27:36
Не должно быть ограничения по числу раз.

Denis
19.05.2017
16:27:51
Инфинити?
Тогда rx)

Vadim
19.05.2017
16:28:10
ок )

Denis
19.05.2017
16:28:12
Ибо тебе стримы надо
Вообще возьми mostjs там есть iterate
Ну или в rx это expand

Vadim
19.05.2017
16:28:56
Спасибо!

Denis
19.05.2017
16:29:37
Нзч
Я в принципе догадываюсь как это сделать и без rx, но не буду тебя травмировать)

Vadim
19.05.2017
16:33:29
Мне на самом деле эта задача не принципиальна. Я просто в ramda осваиваюсь, и придумываю себе задачи )

Denis
19.05.2017
16:34:02
Ну, тут только стримы

Vadim
19.05.2017
16:34:14
Ок, понял

Denis
19.05.2017
16:34:23
Мб трансдьюсеры в рамде глянь

Дмитрий
19.05.2017
16:37:14
Трансдьюсерывообще мимо