@frp_ru

Страница 118 из 420
Denis
24.07.2017
19:11:37
ну и изо

ща найду классный гайд

kana
24.07.2017
19:12:18
Не, я читал про это уже

На вики

Google
kana
24.07.2017
19:12:34
Там рисунки хорошие

Denis
24.07.2017
19:12:40
ты тут не один) http://dxdy.ru/post931190.html#p931190

ну так вот изоморфизм можно выражать через ф-алгебры

например Nat = List ()

Nat = Fix(Maybe)

andretshurotshka?❄️кде
24.07.2017
19:16:05
это закон для NT
NT — natural transformation?

Denis
24.07.2017
19:16:09
да

andretshurotshka?❄️кде
24.07.2017
19:16:30
мне чет сначала windows NT в голову пришел)

Denis
24.07.2017
19:17:01
http://anton-k.github.io/ru-haskell-book/book/15.html#естественное-преобразование

http://anton-k.github.io/ru-haskell-book/book/16.html

andretshurotshka?❄️кде
24.07.2017
19:17:34
я по хаскеллю только haskellbook (не этот) до 6 главы прочитал)

Denis
24.07.2017
19:18:18
советую книгу Антона

анивей, имея функтор можно делать чудеса)

Google
Denis
24.07.2017
19:18:58
есть же еще всякие пара, апо

вообще хотите изврат то сделайте изоморфизм Черч - Обычный тип Черч - Черч

например черч список - список

Черч Пеано - Черч Мейби

newtype MaybeC a = MaybeC { runMaybe :: forall r. r -> (a -> r) -> r } deriving Functor

newtype BoolC = BoolC { runBool :: forall a. a -> a -> a }

type instance Base NaturalC = MaybeC

осталось написать инстансы для Recursive, Corecursive и cata, ana будет готова)

я юзаю Кметтовские recursion-schemes

но для начала можно type instance Base Natural = MaybeC

написать для этого инстансы

import Numeric.Natural

andretshurotshka?❄️кде
24.07.2017
19:30:35
черч это про church encoding?

Denis
24.07.2017
19:30:45
да

чем сложнее структура тем больше вылазит наружу Черч

например аппликативный левый фолд

https://www.stackage.org/haddock/lts-8.23/foldl-1.2.5/Control-Foldl.html#t:Fold

и мой изврат) https://github.com/xgrommx/practical-functional-programming/blob/master/beautiful-fold.js#L11

Vadim
24.07.2017
19:44:41
Кстати, то что я описал как пожелание к линзам (возможность выбора определенных элементов на произвольной глубине вложенности) судя по всему вполне реально реализовать на partial.lenses. Там есть операторы рекурсии. Так что, хоть это и совсем не querySelectorAll, но той же цели добиться можно. Хоть и строя для этого целые пути (зато произвольные и "автоматически").

Denis
24.07.2017
19:45:22
ну и сколько вариантов надо будет пройти? ты просто хочешь рекурсивно бегать и тыкать?

Google
Vadim
24.07.2017
19:46:11
Там разом можно применять модификатор ко всем найденным элементам

Denis
24.07.2017
19:46:49
почитай что такое линзы

Twan van Laarhoven

https://github.com/ekmett/lens/wiki/History-of-Lenses

ну и классика https://www.twanvl.nl/blog/news/2011-05-19-lenses-talk

? animufag ?
24.07.2017
19:53:42
ну кстати можно же дойти до какого-нибудь массива в конце и применить map не совсем то что нужно, но в общем-то можно такие цепочки строить из сеттеров и мапов

? animufag ?
24.07.2017
19:58:51
Мб фигню сказал, дома проверю, скину

Denis
24.07.2017
19:59:09
кстати еще

вроде все cata есть правые свертки

Vadim
24.07.2017
20:07:09
Кстати, нашел-таки у них то, что искал (модификация по рекурсивному селектору) L.modify(flatten, x => x+1, [[[1], 2], {y: 3}, [{l: 4, r: [5]}, {x: 6}]]) // [ [ [ 2 ], 3 ], { y: 4 }, [ { l: 5, r: [ 6 ] }, { x: 7 } ] ]

? animufag ?
24.07.2017
20:21:52
Лол

Поясните что тут происходит

Как тут flatten работает

Vadim
24.07.2017
20:24:40
На слово flatten в данном примере не обращай внимание ) Это они там просто оператор так для примера назвали ) Так то это тут более подробно: https://github.com/calmm-js/partial.lenses#recursing

Denis
25.07.2017
00:16:44
баньте

я видел некоторое дерьмо https://github.com/tpoulsen/recursion_schemes

andretshurotshka?❄️кде
25.07.2017
12:09:17
https://t.me/joinchat/AAAAAD9SWO_tLd7rJ9S7Ig

там набег жсников

Google
kana
25.07.2017
12:22:51
интересно, из-за чего

andretshurotshka?❄️кде
25.07.2017
12:28:15
из-за того что я скинул сюда

illiatshurotshka❄️
25.07.2017
12:28:38
ня

Дмитрий
25.07.2017
12:31:11
Поясните что тут происходит
Когда я раньше открывал эту доку, эта мысль меня преследовала постоянно

Всё же такие убер-либы с триллионом кейсов надо раскрывать серией статей, просто доки маловато(

andretshurotshka?❄️кде
25.07.2017
13:29:22
?

? animufag ?
25.07.2017
15:53:56
что ты имеешь ввиду?
короче [[1,2],[3,4]] & ix 1 %~ map (+1) что-нибудь такое. ну и далее комбинировать в мап запихивать следующие сеттеры. но меня самого такой расклад не впечатляет, тк мы ограничены однородными структурами вроде списков (для произведений вроде рекордов уже ничего не сделать) и глубина этих сеттеров всегда одинаковая и нельзя творить полный треш нашёл вот такую ссылку http://hao.codes/haskell-advent.html и ещё Data.Data.Lens в котором я не могу разобраться. Обожаю хаскель инфраструктуру за отсутствие примеров. думаю на хакедже есть спец модерация которая выпиливает излишние примеры из модулей. И ещё ограничение на название параметра типа в одну букву. Типа сказать Lens fromContainer toContainer fromT toT будет звучать глупо, как будто тебя в начальной школе оставляли на второй год

Denis
25.07.2017
16:06:12
@kana_sama haskell for mac?

Admin
ERROR: S client not available

Denis
25.07.2017
16:09:06
какой-то недоидрис)

https://github.com/gcanti/typelevel-ts

? animufag ?
25.07.2017
16:15:28
ну вон тот пример с помощью Plate не повторить: оно походу только извлекает

Кстати, нашел-таки у них то, что искал (модификация по рекурсивному селектору) L.modify(flatten, x => x+1, [[[1], 2], {y: 3}, [{l: 4, r: [5]}, {x: 6}]]) // [ [ [ 2 ], 3 ], { y: 4 }, [ { l: 5, r: [ 6 ] }, { x: 7 } ] ]

ну в общем то в динамическом языке мало чего тебя останавливает

kana
25.07.2017
16:33:06
Denis
25.07.2017
16:33:41
вот



kana
25.07.2017
16:34:20
не, это же hackage https://hackage.haskell.org/package/base-4.10.0.0/docs/src/GHC.IO.html

Denis
25.07.2017
16:34:34
а

Google
kana
25.07.2017
16:34:38
нет у меня денег на мак)

Denis
25.07.2017
16:37:04
а что там за книга по идрис за 50 бачей?

kana
25.07.2017
16:38:06
https://www.manning.com/books/type-driven-development-with-idris

Vadim
25.07.2017
17:10:50
Всё же такие убер-либы с триллионом кейсов надо раскрывать серией статей, просто доки маловато(
Но вообще мне все-таки кажется, что если в проекте используется либа типа ramda, то случаев где необходимо использовать именно возможности partial.lenses остается крайне немного. Из всей своей многолетней практики я могу вспомнить лишь несколько моментов когда возможности этой либы были бы востребованы. Потому и удивился что кто-то потратил столько усилий на что-то крайне редко применимое.

Дмитрий
25.07.2017
17:12:13
Там, где нужна трансформация данных

Массовая валидация полей например

Какой-нибудь конфиг по схеме отвализировать и трансформировать по шаблонам, со вложенностью, рекурсивностью, ну и прочим, что бывает в каких нибудь api схемах

Vadim
25.07.2017
17:13:26
Массовая валидация полей например
Но которую не хочется делать рамдовским find например )

Дмитрий
25.07.2017
17:13:41
Лол, я не про формы ?

Я про структуры

Дмитрий
25.07.2017
17:13:57
swagger там какой-нибудь нагенерить

? animufag ?
25.07.2017
17:15:55
то есть вполне возможно что ты подходишь к решению задачи исходя из имеющихся знаний

andretshurotshka?❄️кде
25.07.2017
17:16:45
>роб пайк

? animufag ?
25.07.2017
17:16:46
и не находишь применения линзам, тк в голове не вырабатались шаблоны их применения

Дмитрий
25.07.2017
17:17:13
Denis
25.07.2017
17:17:43
да в го даже примитивного редьюс нет, ничерта для удобства работы с примитивными коллекциями

andretshurotshka?❄️кде
25.07.2017
17:17:45
PCJ: ”I’ve never experienced a need for generics.” This experience is very much shared across a wide range of developers (myself included). If this anecdote keeps popping up, at what point does stop becoming "anecdotal" and start becoming "evidence" http://ift.tt/2gZDg55 http://ift.tt/2eKMxxi

Страница 118 из 420