@haskellru

Страница 398 из 1551
Index
12.09.2017
12:00:58
и раскрывается в x => g (f x)

ParkeT
12.09.2017
12:01:02
хорошая статья "Monads are trees with grafting"

Sherzod
12.09.2017
12:01:29
Стоп

Index
12.09.2017
12:01:46
В общем в этой концепции главное понять, что мы можем рассматривать выходные данные функции как вещь, к которой применяется map

Google
Evgeniy
12.09.2017
12:01:46
еще можно это представить в уме как дженерик функция которая оперирует над другими дженериками

( там где T есть Tree, List, Array...)

Index
12.09.2017
12:03:32
Вот рассмотрим массив ["a", "b", "c", "d"]. В нем по индексу 0 находится "a", по индексу 1 находится "b", etc Сделали map (x => x + "!"), получили ["a!", "b!", "c!", "d!"] (если в C# через + конкатенация строк, я не помню)

А теперь рассмотрим функцию гипотетическую toHex, которая из инта дает строчку — 0 в 0x0, 10 в 0xA, etc

Sherzod
12.09.2017
12:04:41
ок

Index
12.09.2017
12:04:59
Сделаю я по ней map (x => x + "!") и получу функцию, которая из инта дает строчку — 0 в 0x0!, 10 в 0xA!, etc

В этом плане мы можем рассматривать входные данные как индексы, а выходные как элементы

а функцию как бесконечную структуру

Sherzod
12.09.2017
12:05:38
начальный массив [0, 10, ...]? toHex.map(x => x + "!") так?

Index
12.09.2017
12:06:45
Нет, какой начальный массив? Я уже рассматриваю гипотетическую функцию toHex, а не массив

и провожу аналогию, что она как бесконечный массив

Evgeniy
12.09.2017
12:06:59
тут есть разница между тем приминить map на функцию или на результат ее выполнения

Google
Sherzod
12.09.2017
12:07:11
почему она бесконечный массив?

Index
12.09.2017
12:07:11
["0x0", "0x1", "0x2", ... "0xA", "0xB", ... ]

потому что по индексам содержит hex-строчки

даешь ей индекс, получаешь строчку

Sherzod
12.09.2017
12:07:34
индексы откуда?

Index
12.09.2017
12:07:42
входные данные

ты же ей на вход передаешь число

Yuriy
12.09.2017
12:08:06
я предпочитаю объяснять функторы через Maybe, Either, Reader, а только потом функции

Sherzod
12.09.2017
12:08:14
как это должно выглядеть в итоге

Index
12.09.2017
12:08:21
Reader и есть функция @cblp_su

а Maybe и Either это тривиальные случаи контейнеров

Yuriy
12.09.2017
12:08:51
Reader и есть функция @cblp_su
в конечном счёте да, но понять его проще

Vasiliy
12.09.2017
12:09:19
я норм залечил гошнику про функторы на примере гошных указателей и слайсов

Yuriy
12.09.2017
12:09:32
Option<T>, Result<T, Err>, а Радер что это?
Reader — это "окружение"

Index
12.09.2017
12:09:55
как это должно выглядеть в итоге
Имеем toHex, это функция из интов в строчки toHex(0) = "0x0" toHex(1) = "0x1" ... toHex(10) = "0x10" Это можно представить как бесконечный массив, по индексу 0 лежит "0x0", по индексу 10 лежит 0x10

Я не знаю, вроде простая идея

Yuriy
12.09.2017
12:10:14
а Maybe и Either это тривиальные случаи контейнеров
вот тривиальные случаи как раз лучше заходят, а потом проще от них обобщать

Index
12.09.2017
12:10:37
toHex.map(x => x + "!") даст нам другой "бесконечный массив", в котором уже все строчки содержат "!" на конце

Google
Index
12.09.2017
12:10:55
так же как someArray.map(x => x + "!") просто замапит обычный массив и даст новый массив

Sherzod
12.09.2017
12:11:41
toHex.map(x => x + "!") даст нам другой "бесконечный массив", в котором уже все строчки содержат "!" на конце
результат будет функцией, так? var toHexVoskl = toHex.map(x => x + "!"); tohexVoskl(0) => "0x00!"

Index
12.09.2017
12:11:49
Да

Yuriy
12.09.2017
12:12:30
(а в математике (теории множеств) массив определяется как раз как функция из [1..n])

Sherzod
12.09.2017
12:13:32
функция из отрезка?

Index
12.09.2017
12:13:37
Вот, вроде разобрались с map на массивах, деревьях, функциях. В общем, штуковины которые поддерживают map вот таким образом являются функторами (если быть точнее, то эндофункторами в определенной категории, но это я сейчас точно не объясню)

Yuriy
12.09.2017
12:14:01
функция из отрезка?
функция из множества натуральных чисел от 1 до n

Sherzod
12.09.2017
12:14:27
функция из множества натуральных чисел от 1 до n
а как там может быть функция, если это множество _натуральных_ чисел?

Yuriy
12.09.2017
12:15:09
а как там может быть функция, если это множество _натуральных_ чисел?
функция из множества натуральных чисел от 1 до n в то множество, которое тебе нужно, например, во множество сепулек

Index
12.09.2017
12:15:51
@Epikur Функция — это отображение одного множества на другое. Нет никакой причины, по которой первое из множеств должно быть действительными числами (отрезок, как ты предположил), а не натуральными.

Sherzod
12.09.2017
12:16:09
функция из множества натуральных чисел от 1 до n в то множество, которое тебе нужно, например, во множество сепулек
я тебя не понимаю. У меня есть множество яблок, кроме яблок там ничего нет. Как там может оказаться функция?

Alex
12.09.2017
12:16:43
функция между двумя множествами

Index
12.09.2017
12:17:14
Да

Alex
12.09.2017
12:17:22
может быть функция которая сопоставляет каждое яблоко соседнему

Yuriy
12.09.2017
12:17:56
я тебя не понимаю. У меня есть множество яблок, кроме яблок там ничего нет. Как там может оказаться функция?
если ты хочешь описать массив из 42 яблок, ты должен сопоставить числам от 1 до 42 по яблоку

Alex
12.09.2017
12:18:05
или функция которая сопоставляет яблоко его весу

Sherzod
12.09.2017
12:18:24
Окей

Я уже понял что даже функтор простыми словами не могу объяснить

Google
Yuriy
12.09.2017
12:18:53
Alex
12.09.2017
12:19:10
массив индексированный яблоками чо

Index
12.09.2017
12:19:21
Я уже понял что даже функтор простыми словами не могу объяснить
Отлично, значит могу не продолжать ? А то печатать надоело и работать надо

Sherzod
12.09.2017
12:19:24
Но то что Алекс Грызлов пишет... Какой-то рокет сайенс

Сейчас еще раз его сообщение прочитаю

Alex
12.09.2017
12:19:49
категори саенс

Yuriy
12.09.2017
12:20:09
массив индексированный яблоками чо
можно мэп индексировать яблоками, но массив только числами (или яблоками, но только после того, как ты их пронумеруешь)

Alex
12.09.2017
12:20:30
короч функторы это обобщение функций а профункторы это обобщение реляций

Sherzod
12.09.2017
12:21:12
Реляция - это связи?

Alex
12.09.2017
12:21:43
типа как в базе данных

Index
12.09.2017
12:21:48
@clayrat Первое понятно (функции это функторы на тонких^W дискретных категориях), а второе можно пояснить?

Alex
12.09.2017
12:22:48
https://bartoszmilewski.com/2016/07/25/profunctors-as-relations/

Index
12.09.2017
12:23:19
thin category

Sherzod
12.09.2017
12:23:23
и что с этими гистаминовыми функторами делают?

Index
12.09.2017
12:23:26
никаких стрелок кроме id

Alex
12.09.2017
12:23:29
https://ncatlab.org/nlab/show/thin+category

Index
12.09.2017
12:24:00
черт

я имел в виду дискретные значит(?)

да, точно

Google
Index
12.09.2017
12:24:29
прошу прощения, функции — это функторы на дискретных категориях

Sherzod
12.09.2017
12:24:47
зачем всё это нужно?

Alex
12.09.2017
12:24:59
чтобы абстрагировать математику

Sherzod
12.09.2017
12:25:05
с иммутабельностью и Option<T> понятно

Alex
12.09.2017
12:25:08
типа сопоставлять тервер с топологией

теоремы не доказывать одинаковые по многу раз

Sherzod
12.09.2017
12:25:51
а какой профит в этом?

Alex
12.09.2017
12:26:12
для математиков есть

и хардкорных фпшников

типа кметта

Sherzod
12.09.2017
12:26:36
кметта это человек?

Index
12.09.2017
12:26:44
Edward Kmett

Alex
12.09.2017
12:26:52
https://www.linkedin.com/in/ekmett

Sherzod
12.09.2017
12:29:06
Он приложухи для брокеров пишет?

Для уолстрит?

Alex
12.09.2017
12:29:17
бекенды скорее

Yuriy
12.09.2017
12:29:51
я тут на днях слушал доклад Конала Эллиотта про то, как он умеет трансформировать программный код в произвольную категорию (категории скорее в хаскелльном смысле, чем в математическом) http://conal.net/papers/compiling-to-categories/compiling-to-categories.pdf по-моему, самое понятное практическое применение ТК, а именно: программный код, функции образуют категорию. давайте отобразим её на любую другую

Alex
12.09.2017
12:30:17
вообще теоркат для программистов как по мне надо начинать с линейной алгебры

правда моноидальное толком мапится только на линейнообразные типы

Sherzod
12.09.2017
12:30:36
А вот это я: https://www.linkedin.com/in/sherzod-mutalov-817212a6/

Хорошо, будут ва стикеры с профункторами и гистограммами

Alex
12.09.2017
12:31:29
а я https://www.linkedin.com/in/alexgryzlov/

Страница 398 из 1551