
Xeta Felius
13.12.2017
21:48:24
особенно первое
дикий трэш

kana
13.12.2017
21:48:50
не ну мне решение понятно и оно красивое довольно, да и работать в принципе достаточно удобно
просто это не для реального мира (да и то зависит от задач наверное))

Google

Xeta Felius
13.12.2017
21:49:10
Ну да
universim лучше гораздо и в нём нет этого говна?)

Alexander
13.12.2017
21:50:03
нету хороших прелюдий
universum нормальный

kana
13.12.2017
21:50:28
ну я с ним работал не так много, но мне нравится намного лучше бейса
какое-то говно в нем наверняка есть, нужно просто найти
например когда нужны кметовские линзы, а универсум экспортит микролинзы
они в принципе совместимы вроде, типы же одинаковые, просто могут быть ambiguous

Alexander
13.12.2017
21:51:10
/me пользуется base в 90% случаев
+ custom prelude под проект
иногда

Pavel
13.12.2017
21:57:20
кстати
как часто нужны призмы людям?

kana
13.12.2017
21:58:28
так в микролинзах есть призмы же

Alexander
13.12.2017
21:59:08
зато траверсалов нету

Google

Alexander
13.12.2017
21:59:12
а траверсалы нужны

kana
13.12.2017
21:59:36
в смысле нету?
возможно нужны какие-то очень крутые траверсалы, я не сильно шарю в линзал, но https://hackage.haskell.org/package/microlens-0.4.8.1/docs/Lens-Micro.html#g:6

Alexander
13.12.2017
22:00:17
раньше не было во всяком случае

kana
13.12.2017
22:01:35
да не, траверсалы там с первой версии, как без них

Pavel
13.12.2017
22:02:12
хм
поспать делал что в микролинзах нет призм
окей
почему то*
думал*

Alexander
13.12.2017
22:21:34
может с какими другими минималистичными линзами я путаю..

A64m
13.12.2017
22:26:53
траверсалы то всегда есть, их классами и base делать можно, вот призмы дополнительных зависимостей требуют, от профункторов

Alexander
13.12.2017
22:26:53
кстати вопрос к едущим на fby кто где там проживать будет?
а да, логично

kana
13.12.2017
22:28:52
квартиру сняли через букинг где-то на немиге

Alister
13.12.2017
22:33:59

kana
13.12.2017
22:34:17
fby.by
там еще 5 билетов есть

Alexander
13.12.2017
22:39:45
а обратно когда и на чем (те кто из питера)?

Michel
14.12.2017
08:00:17
А напомните пожалуйста, или дайте ссылку почему в ФП от bottom type нельзя избавиться?

Leonid
14.12.2017
08:29:38
@A64m_qb0 вон что в планах на 8.4
> Improved Windows support, including support for split sections and long file paths (Tamar Christina)
А ты говоришь не работают над виндой и путями
https://ghc.haskell.org/trac/ghc/wiki/Status/GHC-8.4.1

Google

A64m
14.12.2017
08:30:18
о, чего-то я путей не заметил.

Kirill
14.12.2017
08:43:08

Alexander
14.12.2017
08:43:12

A64m
14.12.2017
08:59:30

Leonid
14.12.2017
08:59:50
Вот и я не нашёл
Может они про пути в билде гхц только?

Denis
14.12.2017
09:45:24
можно ли это юзать как квантор существования? exists x.
https://hackage.haskell.org/package/exists-0.2/docs/Data-Exists.html
внезапно это может exists x. как keyword http://foswiki.cs.uu.nl/foswiki/Ehc/LanguageFeatures
http://blog.ezyang.com/2010/10/existential-type-curry/

Index
14.12.2017
09:55:22
class Vacuous a
instance Vacuous a
Exists Vacuous эквивалентно квантору существования

Index
14.12.2017
09:55:53
Иначе это квантор существования + словарик
А если в качестве констрейнта выбрать SingI или Typeable, то будет сигма

Hot
14.12.2017
09:56:58
Акция невиданной щедрости - при присвоении имени полю в собственном типе - геттер и сеттер в подарок!

Denis
14.12.2017
09:57:05

Hot
14.12.2017
09:57:08
Простите, не удержался, я только учусь :(

Denis
14.12.2017
09:57:13
pi это forall

Index
14.12.2017
09:57:16
Сигма это пруфрелевантный exists
pi это пруфрелевантный forall

Google

Denis
14.12.2017
09:57:34
а при чем тут тогда равенство по Лейбницу?

Index
14.12.2017
09:58:05
А кто говорил про равенство по Лейбницу? (Я вообще не понял при чем тут это)

Denis
14.12.2017
09:58:37
https://t.co/zmiy33Cdpt
просто в purescript через это Exists делают, GADTs

Index
14.12.2017
09:59:51
forall и pi разные, forall параметричный, id :: forall a. a -> a не может ничего с a сделать, id :: pi a. a -> a может.
Во всяких Coq/Agda где forall энкодят через pi, они всунули параметричность хакнутым образом для * (а остальные кайнды не параметричны)
В DependentHaskell будет нормально, по заветам МакБрайда
два квантификатора отдельных

Admin
ERROR: S client not available

Denis
14.12.2017
10:01:10
ну как бы про DT я смотрел https://www.youtube.com/watch?v=ISGENChlA4M&list=PLvPsfYrGz3wufQguebnCduYgQQ9UMeJRt

Index
14.12.2017
10:01:44

Denis
14.12.2017
10:02:01

Index
14.12.2017
10:02:52
согласиться помимо чтения оставлять комментарии (т.е. ревьюить) и попросить инвайт у @lightgreen

Denis
14.12.2017
10:04:56
@int_index можешь объяснить эту магию? https://gist.github.com/int-index/d35255377b1ee05780eb9e006959bccb

Index
14.12.2017
10:05:24
Я ничего не помню, там кто-то в Twitter упражнение запостил, я просто заставил типы сойтись

Denis
14.12.2017
10:07:06
ну идею вот этих Data.Constraint.Forall
в пурсе вот это http://try.purescript.org/?gist=1304cf5bdc3af1cefa5f0a9e263d5d49&session=0548d95f-ace6-0132-6b53-a4c79b686f4a

Index
14.12.2017
10:09:47
в Haskell это для констрейнтов сделано, потому что forall слева от => использовать нельзя
А в PS я слабо понимаю что там в этом файле происходит, там ведь RankNTypes из коробки

Google

Index
14.12.2017
10:10:22
как это вообще компилится?
На тёрмах конструктор если Forall, то на типах должно быть Forall Maybe

Denis
14.12.2017
10:10:44

A
14.12.2017
10:10:52

Denis
14.12.2017
10:11:23
ну в хаскелл похожее вроде можно
newtype Forall f = Forall (forall r. f r)
runForAll :: forall f r o. (f r -> o) -> Forall f -> o
runForAll f (Forall l) = f l
newtype Maybe' a r = Maybe' {runMaybe :: r -> (a -> r) -> r}
type MMaybe a = Forall (Maybe' a)
nothing :: forall a. MMaybe a
nothing = Forall (Maybe' const)
just :: forall a. a -> MMaybe a
just x = Forall (Maybe' $ \_ j -> j x)
maybe :: forall a r. r -> (a -> r) -> MMaybe a -> r
maybe n j = runForAll $ \(Maybe' f) -> f n j

Index
14.12.2017
10:11:54
Я понял, там type Maybe свой, а не из прелюда
Он уже включает в себя Forall

Denis
14.12.2017
10:12:17
newtype Maybe' a r = Maybe' {runMaybe :: r -> (a -> r) -> r} это вообще Черч

Index
14.12.2017
10:13:06
Да, я понял, они CPS -нули всё и радуются

Denis
14.12.2017
10:13:07
и какой профит оборачивать Черча в Forall?

Index
14.12.2017
10:14:02
Это похоже на упражнение о том, как программировать без ADT
Типа, смотрите, одни функции остались и ньютайпы, а у нас Maybe

A64m
14.12.2017
10:14:43

Index
14.12.2017
10:14:51
Да

Denis
14.12.2017
10:15:03
а пожелания?

A64m
14.12.2017
10:15:13
Тогда я бы покомментировал

Index
14.12.2017
10:15:14
Да, в этом смысл, фидбек в общем
(было бы что)
Почти все главы сейчас на (1), пара на (2)
И две главы про парсинг до конца недели планируется довести до начала (3), чтобы опубликовать drafts
1. Collect all topics/info (in the "What This Chapter Should Contain" section, but perhaps as a draft of the chapter itself)
2. Plan pedagogy - the order of introducing these topics. Think carefully about the background of the reader and when to go into more details.
3. Find best phrasing and how to use English. For now I do it together with (1) and (2), but this will get more attention when we hire an editor.