@frp_ru

Страница 89 из 420
Yumi
26.06.2017
18:09:09
http://xgrommx.github.io/rx-book/content/resources/reactive_libraries/index.html - норм списочек.

Denis
26.06.2017
18:09:33
там сбоку подсписки по rx,bacon,...

я про сайдбар меню

Yumi
26.06.2017
18:10:22
?

Google
Roman
27.06.2017
07:20:26
пока кажется водянистой довольно
почитал дальше середины и стало классно, беру свои слова обратно

Vadim
27.06.2017
13:48:41
Вопрос к тем кто читал и Mostly Adequate Guide и Functional Programming in JavaScript. Обязательно ли читать ОБЕ эти книги? Являются ли эти две книги взаимозаменяемыми?

После прочтения одной, стоит ли тратить время на вторую? Особенно если времени мало.

Taras
27.06.2017
13:51:36
со второй половины можеш прочесть Functional Programming in JavaScript

Kirill
29.06.2017
08:25:12
А как в рамде делать шаблонизацию строк на подобии template string из es6 или lodash.template?

Vladimir
29.06.2017
08:37:18
Kirill
29.06.2017
08:38:09
Ну типа чтобы было point-free.

Vladimir
29.06.2017
08:38:38
Ну типа чтобы было point-free.
Es template strings берут переменные из контекста

Тут не получится пф

Kirill
29.06.2017
08:45:01
Хочется такого https://goo.gl/2bEJDm

Максим
29.06.2017
12:41:28
Можно github.com/citycide/babel-plugin-partial-application юзать. Но это, конечно, не для прода

Вообще pointer-free в языке без типов очень сомнительная вещь. Быстро страновится жутко неочевидно, какие структуры данных должны приходить в функции

Так хотя бы через деструктуризацию можно описать данные

Google
Denis
29.06.2017
19:09:14
вырезал из ngrx, ng (вот вся идея вместе с эффектами) https://jsbin.com/lugocit/3/edit?js,console

Дмитрий
29.06.2017
19:16:37
Denis
29.06.2017
19:17:44
и если кому интересно вот мои старые эксперименты с возможностью обновлять или удалять reducers https://jsbin.com/nujune/10/edit?html,js,console

Yumi
29.06.2017
20:20:31
Не ожидал от тебя, а так вообще хорошая идея.

Denis
29.06.2017
20:20:48
так это ngrx без ng

https://www.sitepoint.com/switching-from-react-to-cycle-js/

Kirill
30.06.2017
14:01:39
И что, тут кто-то свичнулся уже?

andretshurotshka?❄️кде
30.06.2017
16:14:46
Дмитрий
30.06.2017
17:08:17
?

Кмк, сейчас уже даже не стоит вопрос использовать реакт или нет, слишком много бонусов от экосистемы)

Denis
30.06.2017
17:10:58
ага бонусов от экосистемы ng2 :D

Дмитрий
30.06.2017
17:11:25
))

Denis
30.06.2017
17:11:38
ana,cata,homomorphism,f-(co)algebra











Google
Дмитрий
30.06.2017
17:12:22
Можно просто использовать реакт как чисто view, благо в recompose предоставляются утилиты для стримов компонентов

Denis
30.06.2017
17:12:54
хочу сделать под все диаграммы)

мне нравится что Кметт обобщил все это и вывел некую сущность Base что более матерей чем Fix

Base Functor

vs Fixed Functor

потому что можно написать так data ListF a b = NilF | ConsF a b deriving (Functor, Foldable, Traversable) а потом просто сделать [] представителем Recursive, Corecursive указавши при этом, что базовый функтор для ListF будет []

ну или сгенерить)) TemplateHaskell

Denis
30.06.2017
17:22:06
ага не надо возится с Fix

приблизительное дерьмище на js буде такие представители recursive corecursive List.prototype.embed = function() { return this.case({ Nil: () => [], Cons: (x, xs) => [x, ...xs] }) } Array.prototype.project = function() { if(this.length > 0) { const [x, ...xs] = this return Cons (x, xs) } else { return Nil } }

где

Denis
30.06.2017
17:23:35
var List = Type({ Nil: [], Cons: [T, T] }) const { Nil, Cons } = List

дальше вот так

const hylo = (f, g, t) => f(g(t).map(x => hylo(f, g, x))) const cata = (f, x) => hylo(f, t => t.project(), x) const ana = (g, x) => hylo(t => t.embed(), g, x)

ну и простой пример

const take = n => xs => { const go = t => i => { return t.case({ Nil: () => [], Cons: (a, k) => { if(i === 0) return [] else return [a, ...k(i - 1)] } }) } return cata(go, xs)(n) }

соберешь?)) в рабочий код?)

я уже все дал

Дмитрий
30.06.2017
17:28:26
соберешь?)) в рабочий код?)
До блока с hylo cata всё уже есть ?

Google
Denis
30.06.2017
17:32:50
не

List не классический индуктивный тип

Cons: [T, T]

значит любой тип

Admin
ERROR: S client not available

Denis
30.06.2017
17:33:35
это не индуктиный хвост там

Дмитрий
30.06.2017
17:36:49
значит любой тип
Array(2) из объектов любого типа?

Denis
30.06.2017
17:38:22
ну это в union-type делается конструктор данных

Дмитрий
30.06.2017
17:38:43
Я знаю, просто уточняю)

Говорю ж, до блока с hylo всё есть ?

Denis
30.06.2017
17:40:17
ну тогда осталось дело за малым)

Дмитрий
30.06.2017
17:42:59
Причём const { Nil, Cons } = List не обязательно, если List сам является конструктором, который бы кастовал нужный тип из union

Denis
30.06.2017
17:43:26
но мне удобней писать Cons а не List.Cons

Дмитрий
30.06.2017
17:46:59
Не, я не про это

const list1 = List( [] ) const list2 = List( [ T, T ] ) list1.type // => Nil list2.type // => Cons

(Да, это не синтаксис union-type)

Denis
30.06.2017
17:48:52
wat?)

Дмитрий
30.06.2017
17:56:11
wat?)
const Point = Type`Point`({ x: Number, y: Number, }) const Shape = Union`Shape`({ Line: { start: Point, end : Point, }, Circle: { center: Point, radius: Number, } }) const { Line, Circle } = Shape const point1 = Point({ x: 0, y: 10 }) const shape1 = Shape({ start: { x: 0, y: 0 }, end : point1, }) shape1.type // => Line { center: { x: 2, y: 2 }, radius: 1 } instanceof Shape // => true { center: { x: 2, y: 2 }, radius: 1 } instanceof Line // => false const shape2 = Shape({ center: { x: 2, y: 2 }, radius: 1 }) shape2.type // => Circle shape2.equals( Circle( { center: { x: 2, y: 2 }, radius: 1 } ) ) // => true

Denis
30.06.2017
17:56:53
ты только говорил про свою либу)) но ничего не показывал)

Дмитрий
30.06.2017
17:58:42
У меня синдром самозванца, плюс мало описания, поэтому я не решился давать ссылку сюда ?

Google
Дмитрий
30.06.2017
17:59:06
https://github.com/zerobias/mezzanine

Denis
30.06.2017
18:00:01
шо це? <+T> привет скала?

Дмитрий
30.06.2017
18:01:01
Ну я решил что мета-тег нет смысла мешать с декларацией типа, поэтому тег отдельно, данные в скобках — отдельно)

Сергей
30.06.2017
18:01:30
охренеть

как будто китайцы на русском говорят

впринципе слова знаю, но ничего не понимаю (почти)

Denis
30.06.2017
18:02:14
<+T: *, +P, +F> ох скала... а где сабтайпинг?

если есть <+T> то и <-T> должно быть)

https://github.com/zerobias/mezzanine/blob/master/src/type/type-container.js#L18 ?)

Дмитрий
30.06.2017
18:04:00
<+T: *, +P, +F> ох скала... а где сабтайпинг?
Ты как-то немного не так воспринял, кажется) Это не скала

если есть <+T> то и <-T> должно быть)
Если Shape принимает { start: { x: Number, y: Number } } то подоёдет абсолютно любое, что подходит под эту декларацию

Denis
30.06.2017
18:05:59
ну а в скале как?)

Дмитрий
30.06.2017
18:06:19
Я отталкивался от возможностей и кейсов жс

Denis
30.06.2017
18:06:28
http://docs.scala-lang.org/tutorials/tour/variances.html

этот вообще сдурел) https://github.com/gcanti/typelevel-ts

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