@haskellru

Страница 676 из 1551
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 под проект

иногда

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
квартиру сняли через букинг где-то на немиге

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
о, чего-то я путей не заметил.

Alexander
14.12.2017
08:43:12
A64m
14.12.2017
08:59:30
@A64m_qb0 вон что в планах на 8.4 > Improved Windows support, including support for split sections and long file paths (Tamar Christina) А ты говоришь не работают над виндой и путями
что-то не видно только никаких следов добавление поддержки длинных путей. (соотв. тикеты и диффы на фабрикаторе для split sections я видел, но там не доделано еще)

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
Акция невиданной щедрости - при присвоении имени полю в собственном типе - геттер и сеттер в подарок!

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

Сигма это пруфрелевантный exists
когда там уже ваша книга выйдет?) для адвансед мод

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

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.

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