
Vasily
26.05.2017
09:41:26
Я когда-то читал офигительную статью, как девушка-математик устраивалась на работу программистом
У нее была офигительная алгоритмическая база
Но были большие проблемы, как связать это с реальной жизнью

Google

Evgeniy
26.05.2017
09:42:45
Или Option.map, например.

Anton
26.05.2017
09:42:59
Эээм
любой map это функтор ?

Vasily
26.05.2017
09:43:14
Бинго

Evgeniy
26.05.2017
09:43:22
@the_RAMZAY Любой тип, для которого определен map.
То есть seq + Seq.map или option + Option.map.

Anton
26.05.2017
09:43:46
определён map - всмысле, который итерабельный ?

Vasily
26.05.2017
09:43:50
А map, в свою очередь - это просто преобразование тип-тип

Evgeniy
26.05.2017
09:44:05
@the_RAMZAY Почему итерабельный?

Vasily
26.05.2017
09:44:15
Одиночное преобразование же
Seq.map принимает функтор
И применяет его к каждому элементу просто

Evgeniy
26.05.2017
09:44:38
Vasily Функцию.

Google

Vasily
26.05.2017
09:44:44
Функцию, да
Я в терминах путаюсь

Anton
26.05.2017
09:44:53
Ну на примере C#(.net), LINQ можно применить к тому, что реализует IEnumerable или IQueryable

Vasily
26.05.2017
09:45:02
Все вместа является функтором, как я понимаю

Evgeniy
26.05.2017
09:45:16
@the_RAMZAY Да. Но, посмотри еще раз на Option.map.
Там никаких итераций. :)

Anton
26.05.2017
09:45:54
И мол, что бы работал Select(Map), нужно что бы этот интерфейс был у типа, а он подразумевает итерабельность типа.

Vasily
26.05.2017
09:46:13
Select и есть Map

Anton
26.05.2017
09:46:20
я знаю

Evgeniy
26.05.2017
09:46:22
Нет, итерабельность — это не обязательно.

Anton
26.05.2017
09:46:26
хм

Vasily
26.05.2017
09:46:40
Итерабельность тут неважна

Roman
26.05.2017
09:46:40
Ребята... Возник такой наверное очень десткий вопрос:
Можно ли изучать F# не разбираясь в теории категорий ?
Просто вот в чём дело... Я замарочился, что ничего не понимаю в монадах, моноидах, функторах и т.д... Решил значит выучить теоркат... После пары страниц книги я понял что не потяну, спустился ниже до теории типов, тоже сложновато, спустился до теории множеств... Вроде бы с трудом, но потихоньку пытаюсь учить... Но в итоге я уже пол года пытаюсь разобраться в теории, но не строчки не написал на F# и вообще забросил его изучение. И задумался... А правильно ли я вообще всё делаю?
Можно. А захочешь разобраться во всей теории, это гораздо легче сделать с практикой. Так что если "сверху вниз" не получилось(как и у бодьшинства, наверное), то надо идти снизу вверх(но это на самом деле не нужно, чтоб писать на f#)

Anton
26.05.2017
09:47:17

Aleksander
26.05.2017
09:47:28
может так? функтор применяет функцию к контейнеру со значением.

Pawel
26.05.2017
09:47:46

Roman
26.05.2017
09:48:00
Вот с C++, C#, JS я как-то просто сидел, писал код и почитывал книги по языкам. А тут, я не понимаю даже порою, что вы говорите. Очень стыдно, потому что я не понимаю, что такое "монада", "моноид", "функтор", "квантор".
Подход "пиши *** код" работает при изучении языка. Не парься)

Aleksander
26.05.2017
09:48:04
а контейнер - может быть IEnumerable, Option и т.п.

Artemy
26.05.2017
09:48:53
map - принимает функцию (a → b), и "упакованное" в тип значение M a (например, Option<a>, list<a>) и возвращает M b (например, Option<b>, list<b)) — "упакованный" в данный тип результат применения данной функции к значению, упакованному в данный тип"

Evgeniy
26.05.2017
09:50:01
@ruzzke_mir Я в нем серьезно не разбирался никогда. Я инженером-оптиком работаю, поэтому у меня в арсенале в основном диффуры, геометрия, оптимизация.

Google

Evgeniy
26.05.2017
09:50:57
Ух, сколько желающих помочь @the_RAMZAY. :) Мне нравится.

Roman
26.05.2017
09:51:06

Anton
26.05.2017
09:51:14

Artemy
26.05.2017
09:51:21
Ура!
На самом деле, подобным образом в той статье, которую я кидал, объясняется.
Только там ещё с картинками.
Из минусов — не F#/C#
Хотя это субъективный минус

Roman
26.05.2017
09:52:48

Anton
26.05.2017
09:52:52
Я правильно понял, что функтор это вид функции, который принимет функцию с аргументом одного типа, и вернуть может данные совершенно другого типа ?

Artemy
26.05.2017
09:53:31
Нет, функтор - это класс типов, в контексте .NET — интерфейс.
И в нём уже объявлена функция fmap, которая должна делать вышеописанное

Evgeniy
26.05.2017
09:54:01
А давайте просто отправим @the_RAMZAY читать? :)
https://fsharpforfunandprofit.com/posts/elevated-world/

Anton
26.05.2017
09:54:21
Ну как работает map с практической стороны я знаю =)
Использую его каждый день =)

Admin
ERROR: S client not available

Roman
26.05.2017
09:54:37

Anton
26.05.2017
09:54:53
Меня интересует теоретический вопрос понятия Функтор.

Friedrich
26.05.2017
09:54:57

Roman
26.05.2017
09:55:15

Google

Evgeniy
26.05.2017
09:55:17
@the_RAMZAY На сайте написано.

Friedrich
26.05.2017
09:55:25

Artemy
26.05.2017
09:55:45

Vasily
26.05.2017
09:56:51
https://bartoszmilewski.com/2014/10/28/category-theory-for-programmers-the-preface/

Artemy
26.05.2017
09:57:27
Но, по-моему, для практики (конкретно — в .NET), достаточно понять, что это просто интерфейс, при реализации которого ожидается именно вышеописанное поведение.
Хотя на самом деле, неправильно отождествлять интерфейс .NET и класс типов (typeclass)/trait. Просто интерфейс в .NET ближе всего к понятияю класса типов, но ему ещё не достаёт кое-каких фишек, чтобы быть аналогичным.

Evgeniy
26.05.2017
10:00:09
Остановитесь. :)

Anton
26.05.2017
10:00:12
хм

Vasily
26.05.2017
10:00:24
АСТАНАВИТЕСЬ (С)

Artemy
26.05.2017
10:00:26
@gsomix ок, прошу прощения.

Vasily
26.05.2017
10:00:46
Молодежь длиной функтора меряется

Anton
26.05.2017
10:01:07
кстати полистал Expert F# 4 - вроде годненько и на пальцах объясняют.

Artemy
26.05.2017
10:01:14
Просто я помню, как сам относительно недавно всё это не понимал.

Anton
26.05.2017
10:01:20
Попробую пока отложить теорию и просто пописать на F#

Evgeniy
26.05.2017
10:01:54
@the_RAMZAY Давай так поступим. Ты что-то хочешь узнать из теории или основ F#, спрашиваешь, мы отправляем тебя читать. :)
Просто все это уже много раз описано.
Возможно, даже понятнее и грамотнее.

Artemy
26.05.2017
10:02:31
Это да

Evgeniy
26.05.2017
10:06:03
А то мы немного потонем в образовательных вопросах, которые частенько приводят к большому количеству сообщений, неясным формулировкам, спорам и так далее.
Надеюсь на понимание. :)

Google

Evgeniy
26.05.2017
10:09:03
@the_RAMZAY Тебе задание, прочитать статью. Потом спрошу с тебя.
https://fsharpforfunandprofit.com/posts/elevated-world/