
Roman
26.05.2017
07:27:39

Vasily
26.05.2017
07:31:27
Чуваки описывают правила формирования json

Roman
26.05.2017
07:31:28

Google

Vasily
26.05.2017
07:32:37
Ну и используют квотейшны для получения имен переменных конфига
Так сказать, для гарантии компиляции
Корректной

Pawel
26.05.2017
07:33:37

Roman
26.05.2017
07:34:59

Vasily
26.05.2017
07:35:10
В целом, подобный подход с квотейшнами можно было бы по идее использовать при написании сериализаторов
Точнее, мапперов

Roman
26.05.2017
07:35:16
Но у нас же есть computation expressions

Vasily
26.05.2017
07:36:01
Хммм
Интересно, к JSOn.net можно прикрутить как замену JSonProperty?

Roman
26.05.2017
07:36:54

Pawel
26.05.2017
07:39:28

Google

Evgeniy
26.05.2017
07:39:33
@neftedollar Нет. Тайпклассы это не про монады.
Давайте уже закроем эту тему. :)

Roman
26.05.2017
07:40:09

Vasily
26.05.2017
07:40:49
Когда я слышу слово монады, у меня начинают седеть волосы на голове :(. А я еще относительно молод

Evgeniy
26.05.2017
07:41:14
Давайте просто закроем эту тему. :)

Vasily
26.05.2017
07:42:07
Монады к кровавому энтерпрайзу отношения не имеют :)

Evgeniy
26.05.2017
07:42:09
А то у нас тут круговорот отрывочных определений, и никто ничего не понимает в итоге.

Roman
26.05.2017
07:43:32

Pawel
26.05.2017
07:45:16
для страждущих. "Изучай хаскель во имя добра" - определённо лучшее введение в монады и тайп-классы

Evgeniy
26.05.2017
07:45:20
Просто я теперь, кажется, согласен с @angmarr, что в таких случаях надо обращаться к Haskell, где есть каноничные реализации монад, type classes, HKT...
Да.
А F# — это что-то вроде Go от мира ФП. :)

Vasily
26.05.2017
07:54:49
Кстати, коллеги, такой вопрос - Expr может приезжать из внешнего мира?
Внешнего по отношению к модулю
Я имею в виду

Roman
26.05.2017
07:58:48
Если это будет параметр)

Vasily
26.05.2017
07:59:16
Хмм... надо глянуть, как его из c# задать :)

Roman
26.05.2017
08:00:23

Google

Doge
26.05.2017
08:00:45
А F# — это что-то вроде Go от мира ФП. :)
Я бы не сказал, что быть Go - это что-то хорошее. Всё же го - очень спорный язык в плане своих решений и его коммюнити, которое прямо пронизано духом анти-интеллектулизма.

Evgeniy
26.05.2017
08:01:25
@DogeShibu Я про отказ от некоторых фич.
Осознанный.

Roman
26.05.2017
08:01:44

Vasily
26.05.2017
08:15:58
И еще один вопрос - как преобразовать Linq выражение в expr?
Беглый гугл ничего не нашел

Pawel
26.05.2017
08:33:35
Это я к тому что суть претензий к F# у тех же людей - она та же примерно
сначала делается из инструментария культ (из деликатности не добавляю "карго"), - а потом их обижает/возмущает даже самоё существование неверных собак, хотя оные ничего такого и в мыслях не имели

Doge
26.05.2017
08:45:24


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

Vasily
26.05.2017
09:09:50
Зависит от того, какие цели преследуешь

Evgeniy
26.05.2017
09:09:50
@the_RAMZAY Можно. Просто пиши код и читай https://fsharpforfunandprofit.com

Anton
26.05.2017
09:11:56
Основная цель - хочу быть учёным. Разбираться во всех этих монадах, моноидах, метаязыках, полиморфизмах, алгоритмах выведения типов и т.д.
Цель сейчас - хочу научиться писать на F# и решать домашние и продакшен задачи.
@gsomix я учился по этому сайту эдак в декабре - очень годно, но ушел в сторону теорката по выше уже представленному плану.

Evgeniy
26.05.2017
09:13:32
@the_RAMZAY На сайте все интересующие тебя понятия объясняются почти на пальцах.
Начни с него.
И пиши побольше кода. Попробуй реализовать моноид, монаду, какой-нибудь парсер.

Anton
26.05.2017
09:14:10
Вот с C++, C#, JS я как-то просто сидел, писал код и почитывал книги по языкам. А тут, я не понимаю даже порою, что вы говорите. Очень стыдно, потому что я не понимаю, что такое "монада", "моноид", "функтор", "квантор".

Pawel
26.05.2017
09:14:56
Кто сказал квантор? ^_O

Google

Doge
26.05.2017
09:15:10
Вот с C++, C#, JS я как-то просто сидел, писал код и почитывал книги по языкам. А тут, я не понимаю даже порою, что вы говорите. Очень стыдно, потому что я не понимаю, что такое "монада", "моноид", "функтор", "квантор".
Все эти термины удобнее воспринимать как просто ещё одни названия у паттернов. То есть эти вещи не сложнее, чем какая-нибудь фабрика или декоратор из банды четырёх.

Anton
26.05.2017
09:15:13
пытаюсь понять из теории множеств. Но от F# совсем отошел и до всех этих понятий в учебниках ещё огогого.
По этому вчера впал в депрессию из за порочного круга теории.

Vasily
26.05.2017
09:16:20
Забей

Anton
26.05.2017
09:16:34
Чувствую себя совсем дураком просто.

Vasily
26.05.2017
09:16:36
Многие теоретические вещи становятся понятны, только когда много практики
Вон я дебил и прекрасно себя чувствую

Pawel
26.05.2017
09:16:54
а зачем тебе быть именно учёным? программизм - это же инженерная отрласть, а не научная.

Anton
26.05.2017
09:17:16
учёным - это детская мечта =)
мне нравится всё это.

Admin
ERROR: S client not available

Vasily
26.05.2017
09:19:18
Моя мечта стать программистом в свое время разбилась, когда я на ВМК не поступил :)

Doge
26.05.2017
09:19:32
Смотри, сейчас будет объяснение на пальцах:
функтор, например - это такой тип F<T>, что для него существует функция Map вида F<K> Map<T,K>(Func<T, K> f, F<T> functor)

Artemy
26.05.2017
09:19:38
@the_RAMZAY про монады, функторы и аппликативные функторы по-простому неплохо в этой статье описано:
https://habrahabr.ru/post/183150/
По-моему, должно хватить, чтобы начать въезжать в тему. Правда, в статье опираются на Хаскелль. Но если знаком с тем, что из себя представляют функции и типы в нём, то должно быть понятно.

Anton
26.05.2017
09:20:01
ого спасибо вам.

Igor
26.05.2017
09:20:05

Anton
26.05.2017
09:20:17
21 годик. Бгуир.

Artemy
26.05.2017
09:20:32
Ух ты

Vasily
26.05.2017
09:20:32
Ну юности склонен максимализм

Artemy
26.05.2017
09:20:40

Google

Evgeniy
26.05.2017
09:21:39
@the_RAMZAY То, что не доходит через голову, дойдет через руки. :)
И еще нас можно дергать немного.

Doge
26.05.2017
09:22:18
Смотри, сейчас будет объяснение на пальцах:
функтор, например - это такой тип F<T>, что для него существует функция Map вида F<K> Map<T,K>(Func<T, K> f, F<T> functor)
Но с одним но, для этого типа и этой функции должны выполнятся правила:
Map(Identity, functor) == Identity
Map(F(G), functor) == Map(F, Map(G, functor))
Если то хочешь программировать, то удобнее воспринимать эти конструкции не как математические объекты, а как обычные паттерны.

Vasily
26.05.2017
09:23:30
Ну в лямбда исчисление лучше не лезть, конечно
Оно далеко от реальных задач

Anton
26.05.2017
09:23:48
лазил
=)
даже немного понял
поигрался

Doge
26.05.2017
09:24:10
А если хочешь математики, то читай теорию категорий для работающего математика, например, но она требует достаточно неплохих знаний в математике. Как минимум, общую алгебру надо знать хорошо.

Evgeniy
26.05.2017
09:25:37
@DogeShibu Чтобы давать какие-то советы по литературе, нужно сначала бекграунд узнать.

Doge
26.05.2017
09:27:05

Vasily
26.05.2017
09:27:58
Я вот по образованию не математик, поэтому теоретические вещи тяжело заходят

Anton
26.05.2017
09:31:45
Мне математика тоже очень плохо заходит.
Пытаюсь понять, изучить, но это очень с трудом.

Vasily
26.05.2017
09:32:12
Поэтому я забил и смотрю на все эти вещи из практической плоскости
Т.е. есть практическая задача, надо ее решить

Anton
26.05.2017
09:32:40
По поводу лямбда исчислений. Я где-то день на них потратил, но вроде понял..
Вот тут вот игрался
https://people.eecs.berkeley.edu/~gongliang13/lambda/#firstPage

Evgeniy
26.05.2017
09:33:22
А я математик по образованию. Но совсем не тот! Поэтому для меня F# тоже просто практический инструмент.

Artemy
26.05.2017
09:34:06
Я вот как бы совсем неопытен, но мне кажется все эти монады, функторы и т.п. в 1-й раз лучше всего рассматривать в контексте Хаскелля, т.к. его система типов под это заточена. А значит, проще всего именно на нём в качестве тренировки реализовывать подобные штуки.

Anton
26.05.2017
09:34:10
@DogeShibu хм, воспринимать как паттерны... Интересная мысль. Нужно об этом подумать.