
Alexander
09.07.2017
14:19:19
типа однонаправленности ссылок для иммутабельных обьектов
и сразу переход у О(н) от большего
и наличия refenential transparency, которая позволяет при Гц дублировать объекты
ну и куча другого incremental/ non incremental,

Google

Alexander
09.07.2017
14:21:16
stop the world или нет
и для каждого из этого куча общих алгоритмов, у которых разные свойства
и серебряной пули и близко нет

Max
09.07.2017
14:45:32
Что приводит к мысли, что GC - скорее вред, чем польза.

Дмитрий
09.07.2017
14:48:01
Не понимаю, с чего вы вообще взяли, что вам предлагается серебрянная пуля)
Pay as you go; in particular, no effect on code not using GC
Это не серебро, это лопата и кирка. Минимальная имплементация означает что все гипотезы выше предстоит реализовывать самостоятельно
Не суперсет всех gc проектируют, а сабсет

Max
09.07.2017
15:00:22
Лопатой и киркой оборотня не завалить, если что :)

Дмитрий
09.07.2017
15:02:34
Просто никто никуда не спешит) Пока что это даже не фундамент, а только его чертежи
Кому интересно, можете ознакомиться тут https://github.com/WebAssembly/gc/blob/master/proposals/gc/Overview.md

Владислав
09.07.2017
15:51:16
Всем привет!

Alexander
09.07.2017
16:58:11
что значит сабсет

Google

Alexander
09.07.2017
16:58:45
обычно это то, что ты будешь сам реализовывать 90% или 85% хотелок будет не реализуемо

Vyacheslav
11.07.2017
19:48:13
Привет, возник такой вопрос, от человека (меня), который ничего серьезного в продакшен на чистых функциональных языках не писал.
Правда, что самый хороший способ асбтрагировать способ оганизации данных от их получения/обновления — это тайпклассы
или есть что-то лучше?

Dmitry
11.07.2017
19:51:01
критерии хорошести хорошо бы озвучить

Vyacheslav
11.07.2017
19:53:29
я готов слушать про все возможные способы, которые приходят в голову
Моя главная задача, это просто абстрагировать работу с данными от способа (структуры) хранения этих данных

Dmitry
11.07.2017
19:54:43
тайпклассы норм

Misha
11.07.2017
20:06:39
можно и просто data D { save :: k -> v -> IO(), load :: k -> IO t } использовать, без тайпклассов, там правда потеряются какие-то compile-time гарантии, но тоже нормально

Vasiliy
11.07.2017
20:09:40
поговаривают, что если у тайпклассов нет законов, то проще использовать рекорды с методами

Leonid
11.07.2017
20:13:48
Это городская легенда

Warren
12.07.2017
02:10:58
Я бы почитал аргументации сторон по поводу беззаконных тайпклассов. От Кметта неоднократно слышал что ТП без законов это антипаттерн

Ilya
12.07.2017
04:41:59
#spam

Dmitry
12.07.2017
04:46:44
лучше так: @voidlizard @qnikst #spam
Что касается кметта и законов - ну что, плохо теперь математику в мирке, куда повалили беззаконные программисты. Не успели сделать окамловских функторов - не нойте теперь, что тайпклассы и тайпфэмилис как-то не так используются.

Даня
12.07.2017
09:12:57
у меня теоретический вопрос: есть законы аппликативов типа pure id <*> M == M, с точки зрения лямбда-исчисления - это бета-эта эквивалентность между термами?

Oleg
12.07.2017
09:14:04

Denis
12.07.2017
09:24:13

Dmitry
12.07.2017
09:25:09
с ними всё так. но мы их пытаемся использовать ocaml-way что 1) непросто 2) порицается

Denis
12.07.2017
09:28:44
вон Кметт же придумал как обобщить Fix https://github.com/ekmett/recursion-schemes/blob/master/Data/Functor/Foldable.hs#L145

Google

Dmitry
12.07.2017
09:29:38
что-то я боюсь Кметта, по моему он против того, что бы всякие посторонние писали на его хаскелле

Max
12.07.2017
09:30:02
И это правильно. Технофашизм не дремлет.

Dmitry
12.07.2017
09:30:15
это уже техно-ваффен-сс
я по моему даже бумаги Олега понимаю лучше, чем Кметта.
ну, некоторые, ладно
не буду утверждать, что я там дофига чего у Олега понимаю

Denis
12.07.2017
09:34:57
все эти морфизмы замены всех рекурсий корекурсий какие существуют да и есть вещи когда на морфизмах с алгебрами более очевидно пишешь

kir
14.07.2017
14:14:31
https://twitter.com/snoyberg/status/885773644521230336

Alex
15.07.2017
13:58:00
Ребята, вы не в курсе, есть ли хорошие (желательно русскоязычные) подкасты о Хаскелле?

Тёма
15.07.2017
14:26:24
Бананы и линзы и так знаете, наверняка.

Arseniy
15.07.2017
14:30:21
Человек же попросил хорошие.

Тёма
15.07.2017
14:30:34
Ой, всё.

Leonid
15.07.2017
14:32:57
/me отметил в чёрном журнальчике

Даня
15.07.2017
15:33:18
/me
ой, я случайно
Курс Москвина на степике
Ребята, вы не в курсе, есть ли хорошие (желательно русскоязычные) подкасты о Хаскелле?
1 часть

Мерлин
15.07.2017
15:34:11

Google

Admin
ERROR: S client not available

Alex
15.07.2017
15:51:07
Спасибо всем, послушаю

Andrew
15.07.2017
15:52:39
Собственно из его лекций понял что применение функции к аргументу - операция, а отсюда стал понятен смысл оператора $

Bohdan
15.07.2017
16:14:05

Andrei
15.07.2017
16:16:00
??
В смысле.
Как наличие тождественного морфизма говорит что-то о существовании g ?

Евгений
15.07.2017
16:16:52
???

Andrei
15.07.2017
16:16:52
В определении утверждается существование g.

Евгений
15.07.2017
16:17:08
Ага
f:A->B изоморфизм, если существует g: B->A, т.ч. f*g = id_A и g*f = id_B. Если на множествах брать, то это тоже самое, что:
g(f(a)) = a
и f(g(b)) = b

Bohdan
15.07.2017
17:52:14
Они могут не выполняться?
Если есть f:A->B и g:B->A

Евгений
15.07.2017
18:00:17
А с чего бы им выполняться?

Daniel
15.07.2017
18:03:34

Евгений
15.07.2017
18:05:08
Например A, B натуральные, а f(n) = n+1, то если взять
g(n) = n-1, n>1
g(1) = 1
то g(f(n)) = n, но:
f(g(n)) = n, n > 1
f(g(1)) = 2
g лучше ты не найдёшь, потому в 1 f ничего не отображает

kir
15.07.2017
18:27:36
f a = a `mod` 2
Не изоморфизм, именно потому, что у тебя нет g. Изоморфизм - это отображение 1-1, например show (derived) и read (derived).

Google

Semion
15.07.2017
20:03:13
Ну, говоря проще, в категории множеств, например, изоморфизм - это биективное отображение

kir
16.07.2017
05:21:54
Короче: изоморфизм - это обратимое преобразование.

Semion
16.07.2017
05:30:09
Обратимое слева и справа

Bohdan
16.07.2017
15:47:44
А, то есть просто не любой морфизм A->A является id_A?

kir
16.07.2017
16:07:03
Любой. При чём здесь это? Не для любого f :: A -> B существует g :: B -> A, такое что f . g === id . Те пары f, g которые обладают этим свойством и называются изоморфизмом.
(Ну, кроме очевидного f = error "foo")

Евгений
16.07.2017
16:12:06

Semion
16.07.2017
16:12:12
Конечно!
Например, пусть В подмножество в А, рассмотрим включение В в А, и построим расширение этого включения на всё А( если а из А принадлежит А, но не принадлежит В, то ø, если а принадлежит В, то равно а) это морфизм из А в А, но он не тождественный, конечно же.