@haskellru

Страница 437 из 1551
Vasiliy
26.09.2017
17:09:46
кто знает про это?)
а что про него знать?

Denis
26.09.2017
17:10:06
юзкейс

Vasiliy
26.09.2017
17:11:16
есть некоторый MonadState a x, есть некоторый MonadState s x, причём a - часть s

Google
Vasiliy
26.09.2017
17:11:27
zoom позволяет их соединить

Denis
26.09.2017
17:12:14
а получить список чисел можно так [(10, "hello"), (20, " "), (30, "world")] ^..traverse._1

Vasiliy
26.09.2017
17:12:27
конкретно в моём случае был magnify, соответственно, вместо MonadState был MonadReader

в ридере большой конфиг, который состоит из "подконфигов", соответственно, функция, которая по этому конфигу настраивает некоторую систему, вовсю использует функции, работающие с подконфигами, с помощью magnify

Denis
26.09.2017
17:14:13
Vasiliy
26.09.2017
17:15:00
что-то типа setupStand = do magnify server setupServer; magnify client1 setupClient; magnify client2 setupClient

по-моему, у габриэля в статье про императивное программирование с линзами есть примеры зума

вот в этой http://www.haskellforall.com/2013/05/program-imperatively-using-haskell.html

kana
26.09.2017
17:24:25
Понял, откуда там в траверсе взялся Mononid. Это у Конста есть инстанс Аппликатива при условии, что параметр - моноид

Vasiliy
26.09.2017
17:27:18
значит, теперь не составит труда написать toListOf

также известный как (^..)

kana
26.09.2017
17:28:26
Вопрос по реализации аппликативного конста - почему он так странно написан? (<*>) = coerce (mappend :: m -> m -> m) Когда можно было вот так: (<*>) (Const a) (Const b) = Const (a <> b)

Google
illiatshurotshka❄️
26.09.2017
17:31:19
может быстрее?

Denis
26.09.2017
17:32:20
коерц это как раз делает без переупаковок

кстати можно определить foldMapOf а из него view :D

view l = foldMapOf l id

О!

я вспомнил о одной кате

https://www.codewars.com/kata/lensmaker/haskell

illiatshurotshka❄️
26.09.2017
17:38:50
каты это типо наборы заданий?

Denis
26.09.2017
17:39:47
ну да

? animufag ?
26.09.2017
17:42:25
как-то странно в таком месте вдруг за перфоманс взяться

https://www.codewars.com/kata/lensmaker/haskell
так а всё что там есть это дескрипшон?

illiatshurotshka❄️
26.09.2017
17:46:37
https://www.codewars.com/kata/lensmaker/haskell
мб знаешь еще хороших кат(ов) по хаскелю тогда?

Denis
26.09.2017
17:46:58
ага по рекурсивным схемам

illiatshurotshka❄️
26.09.2017
17:47:46
о

давай

Denis
26.09.2017
17:51:20
https://www.codewars.com/kata/54f1fdb7f29358dd1f00015d https://www.codewars.com/kata/54289bfc929cdbbbfd000213 https://www.codewars.com/kata/547a77a6b84a1fb8bf000211 https://www.codewars.com/kata/51ba717bb08c1cd60f00002f https://www.codewars.com/kata/555b1890a75b930e63000023 https://www.codewars.com/kata/5424e3bc430ca2e577000048 https://www.codewars.com/kata/526156943dfe7ce06200063e

Vasiliy
26.09.2017
17:53:42
мб знаешь еще хороших кат(ов) по хаскелю тогда?
Можно задачки project Euler и hackerrank порешать

Детям и девушкам можно посоветовать codingame

kana
26.09.2017
18:07:50


Google
Artyom
26.09.2017
18:09:16
ну тут не до максимума обобщено, если что

kana
26.09.2017
18:10:03
Да, еще можно Applicative использовать

Artyom
26.09.2017
18:10:26
ага, ок

Denis
26.09.2017
18:15:29
так можно и обычный traverse юзать?

Artyom
26.09.2017
18:15:44
ага

kana
26.09.2017
18:16:01
Можно, а что?

Artyom
26.09.2017
18:16:46
@xgrommx traverse – это полноценный травёрсал в van laarhoven линзах (а в профункторных, например – нет) (и Кметт всегда говорит, что мол конечно профункторные линзы хорошо, но круто ведь, что traverse – это травёрсал, и что можно определять травёрсалы без lens)

Alexander
26.09.2017
18:18:14
о Артём вернулся

Artyom
26.09.2017
18:19:11
@qnikst ага, я вышел, потому что чатик чуток сильно бесконечно отвлекал

@xgrommx а какую часть не понял? ?

Alexander
26.09.2017
18:19:40
иногда думаю делать так же

Denis
26.09.2017
18:20:16
@xgrommx а какую часть не понял? ?
что профункторные линзы не работают с traverse обычным?

Artyom
26.09.2017
18:21:11
ну traverse хочет функцию, а профункторные линзы должны работать с любым профунктором

вообще, в профункторных линзах: • линзы простые • призмы простые • а вот травёрсалы какие-то очень непростые, я даже не начинал разбираться

если хочется почитать, то либо http://oleg.fi/gists/posts/2017-04-18-glassery.html#traversal, либо https://hackage.haskell.org/package/mezzolens

Pig
26.09.2017
18:27:23
Что означает rating 2.0 и/или λ λ λ?

Denis
26.09.2017
18:28:05
Artyom
26.09.2017
18:28:06
что несколько людей нажали на вторую лямбду (или на первую и третью)

это рейтинги библиотек прикрутили к Hackage не очень давно

Google
Artyom
26.09.2017
18:30:18
https://github.com/haskell/hackage-server/pull/609

раньше просто была кнопочка “vote for this package” неприметная и считалось количество голосов

и ещё в поиске это показывается теперь



Да, я это знаю, я видел. В том же и вопрос, как он экспортирует их, как он попал в доку, если нет сорцов для этого Const?
экспортировать можно что угодно, не только вещи, которые определены в этом же модуле/пакете



Alexander
26.09.2017
18:42:03
кстати бесит когда реэеспорт из other-module

в итоге через hackage сорцов не видно

Denis
26.09.2017
18:42:12
или хитро import A as X import B as X import C as X

kana
26.09.2017
19:03:46
кстати бесит когда реэеспорт из other-module
А, вот теперь понятно, в чем проблема-то

Alexander
26.09.2017
19:04:21
вообще other-module очень бесит

почему людям с .Internal не живется

kana
26.09.2017
19:04:30
Вообще это довольно странно, так мб делают для удобства, но это нифига неверно. В смысла, когда модуль поставляют больше, чем нужно

Alexander
26.09.2017
19:04:41
вечно забывают что-нить экспортировать

для линз я точно не знаю почему

для сложных структур с хитрыми внутренностями ещё можно понять

там поломать все можно

Artyom
26.09.2017
19:05:51
у линз нету other-modules

Кметт тоже их не любит

у него даже talk есть про то, как он их не любит

Google
Alexander
26.09.2017
19:10:03
но Const в Data.Functor.Const же живет?

в base

Artyom
26.09.2017
19:10:42
это да

kana
26.09.2017
20:36:07
начал смотреть на призмы, а там сразу козвезды, чойсы, профункторы. До этого все было так легко

Дмитрий
26.09.2017
20:36:21
А оно просто сразу и требуется

Одних линз недостаточно

Плюс у большинства из них довольно простые концепции

Yuriy
26.09.2017
20:47:11


Даниил
26.09.2017
20:52:39
во всех чатах телеграма

Hot
26.09.2017
21:08:28
Да ОНО вообще повсюду.

Aleksey
27.09.2017
04:14:56
"Динамическая vs строгая" меня тоже коробит, я бы тоже за клоуном полез - Что ты там ляпнул, клоун? Эти качества ортогональны! Ты куда побежал?

Дмитрий
27.09.2017
05:33:49
"Сильная типизация - это та, которая нравится мне"

Yuriy
27.09.2017
05:37:47
нет, у сильной есть определение

"Сильная типизация - это та, которая нравится мне"
или это какая-то хитрая цитата была?

Дмитрий
27.09.2017
05:43:05
Цитата, о общей бессмысленности споров о терминологиях типизации. Определения есть разумеется, но в голове у оппонентов регулярно оказываются совершенно разные трактовки, сводящиеся к цитате выше Ввиду чего дискуссии часто становятся контрпродуктивными (хотя конечно же ничего сложного в этих понятиях нет)

Aleksey
27.09.2017
06:22:33
@cblp "Строгая" == "Сильная" == "Strong" в паре с "типизация", смирись уже (я вот мирюсь) :) "Строгая динамическая типизация" - уже устоявшееся словосочетание, пусть и неверное.

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