@frp_ru

Страница 139 из 420
Nikita
29.08.2017
11:11:32
А, здесь джс чат?
Угу. Но если есть что интересное - вбрасывай ?

? animufag ?
29.08.2017
11:12:44
Еще один минус в копилочку минусов функционального подхода в js: при использовании функциотальных либ ты теряешь в IDE возможность навигации по декларациям и местам использования констант, если они прошли через цепочки функций. Например, я сейчас прикручиваю библиотеку recompose для реакт. У нее есть такой метод withHandlers, в котором ты описываешь функции-хэндлеры, которые при следующем вызове будут переданы реактовскому компоненту в виде пропсов. Так вот, IDE теперь не знает где описан вызываемый хэндлер. И кроме того, она теперь подсвечивает функцию-хэндлер как неиспользуемую. Просто потому что не понимает что далее в цепочке используется этот же хэндлер. Это я к тому что использование функциональных библиотек для IDE является “магией”, и она теряет возможность отслеживать где что объявлено и используется.
Опиши подробней withHandlers. Как он может брать функции и при этом иде подсвечивает их как неиспользуемые?

Denis
29.08.2017
11:14:28
Еще один минус в копилочку минусов функционального подхода в js: при использовании функциотальных либ ты теряешь в IDE возможность навигации по декларациям и местам использования констант, если они прошли через цепочки функций. Например, я сейчас прикручиваю библиотеку recompose для реакт. У нее есть такой метод withHandlers, в котором ты описываешь функции-хэндлеры, которые при следующем вызове будут переданы реактовскому компоненту в виде пропсов. Так вот, IDE теперь не знает где описан вызываемый хэндлер. И кроме того, она теперь подсвечивает функцию-хэндлер как неиспользуемую. Просто потому что не понимает что далее в цепочке используется этот же хэндлер. Это я к тому что использование функциональных библиотек для IDE является “магией”, и она теряет возможность отслеживать где что объявлено и используется.
еще раз просто говори минус жс а не фп

Google
Denis
29.08.2017
11:15:21
как заставить do вести себя с чем угодно кроме монад?)

? animufag ?
29.08.2017
11:15:41
Для чего нужно наследование?
Как говорил бугаенко: Наследование реализаций хуйня, наследование интерфейсов ок.

как заставить do вести себя с чем угодно кроме монад?)
Ну так вроде только в пурскрипте можно

Denis
29.08.2017
11:16:58
ахаха

{-# LANGUAGE RebindableSyntax #-} import Data.List import Data.Foldable f x = do y <- x (head, tail) <- uncons y z <- tail z + head where (>>=) = flip(<$>) print $ f [[1, 2, 3], [4, 5], [6], []] g = do x <- [1,2,3] y <- Just 42 z <- [Left "foo", Right "bar"] w <- z print [show x, show y, w] where (>>=) = for_ g

? animufag ?
29.08.2017
11:17:20
А так наверное [do| |]

Denis
29.08.2017
11:17:40
ну зачем? оксфордовские скобки не надо)

? animufag ?
29.08.2017
11:19:46
Ну просто хз к чему вопрос. По фану же?

Denis
29.08.2017
11:21:30
10 штука что в идрисе типа лучше хаскелль

https://deque.blog/2017/06/14/10-things-idris-improved-over-haskell/

illiatshurotshka❄️
29.08.2017
11:22:30
а как в идрисе тип character работает?

? animufag ?
29.08.2017
11:23:32
а как в идрисе тип character работает?
Что там может быть необычного?

illiatshurotshka❄️
29.08.2017
11:23:40
??

Google
illiatshurotshka❄️
29.08.2017
11:23:54
много чего

? animufag ?
29.08.2017
11:24:24
Кодировка?

illiatshurotshka❄️
29.08.2017
11:25:20
лол там от бекенда зависит

? animufag ?
29.08.2017
11:27:10
Бекенд = таргет платформа?

Наверное это не character-specific проблема

andretshurotshka?❄️кде
29.08.2017
11:53:45
? animufag ?
29.08.2017
11:54:00
?

Дмитрий
29.08.2017
12:50:15
еще раз просто говори минус жс а не фп
Ещё раз просто говори минус тс а не жс

В флоу заезжали datatype и фантомные типы, передавали привет gcanti

? animufag ?
29.08.2017
12:51:42
что такое datatype?

Дмитрий
29.08.2017
12:52:18
data Bool = False | True

http://learnyouahaskell.com/making-our-own-types-and-typeclasses Я про эти

Дмитрий
29.08.2017
13:01:01
Ну я вот тебе говорю

Анонс позже

Но я уже затестил

illiatshurotshka❄️
29.08.2017
13:01:45
clojurescript же
нинужно

Даниил
29.08.2017
13:07:30
нинужно
почему?

? animufag ?
29.08.2017
13:09:03
ну это же как джс променять на джс

Google
? animufag ?
29.08.2017
13:09:22
тот же динамический язык, только сложнее нанимать сотрудников

Дмитрий
29.08.2017
13:11:57
Я сам офигел))

andretshurotshka?❄️кде
29.08.2017
13:12:11
какой синтаксис

Дмитрий
29.08.2017
13:13:07
Обычный, невозможность различать фантомные типы сейчас — это просто баг, недоработка

Даниил
29.08.2017
13:13:35
immutability by default, нормальная стандартная библиотека, dsl-и на макросах

illiatshurotshka❄️
29.08.2017
13:14:21
и тонна скобок

? animufag ?
29.08.2017
13:14:24
интересно как конструктор дататайпа транслируется в джс. или если он теряется то как приходящие из джс данные в дататйп конвертить

Дмитрий
29.08.2017
13:14:38
Как жс обижать так в очередь становись, а как кложуру так нинада

Он статически верифицируется

illiatshurotshka❄️
29.08.2017
13:15:31
а какой смысл в phantom types

раст их запрещает

kana
29.08.2017
13:16:37
и тонна скобок
как будто что-то плохое

Дмитрий
29.08.2017
13:18:00
раст их запрещает
Вот в расте и никакого

illiatshurotshka❄️
29.08.2017
13:18:11
ну а в других языках

Дмитрий
29.08.2017
13:20:11
какой синтаксис
type T<Phantom> = any type A = T<number> type B = T<string> Что открывает возможность для создания HKT — функтора со всеми вытекающими)

Google
Дмитрий
29.08.2017
13:21:52
Дак лол

Даниил
29.08.2017
13:21:54
раст их запрещает
ну в Rust есть воркараунд в виде std::marker::PhantomData

Дмитрий
29.08.2017
13:22:04
Gcanti так делал уже
У него же и не получилось в итоге

У него для HKT — классы двумя дженериками

HKT<F, T>

illiatshurotshka❄️
29.08.2017
13:22:49
лол

andretshurotshka?❄️кде
29.08.2017
13:22:52
так это можно как HKT юзать?

Admin
ERROR: S client not available

illiatshurotshka❄️
29.08.2017
13:22:56
нет

andretshurotshka?❄️кде
29.08.2017
13:22:57
или нет

https://medium.com/@gcanti/phantom-types-with-flow-828aff73232b

Дмитрий
29.08.2017
13:23:45
так это можно как HKT юзать?
Его вариант — нет

andretshurotshka?❄️кде
29.08.2017
13:24:00
T можно без генерика передавать?

Дмитрий
29.08.2017
13:24:03
Так как это костыль, не позволяющий на самом деле получить именно фантомность

Дмитрий
29.08.2017
13:25:34
T можно без генерика передавать?
У него короч type A<T, number> = T<number> И таскай потом во всему коду за собой эти <T, number>, теряя вообще все бонусы от идеи

Google
andretshurotshka?❄️кде
29.08.2017
13:25:56
так можно T без генерика таскать или нет

Дмитрий
29.08.2017
13:26:26
Можно

Видишь type B = T<string> без дженерика

B

andretshurotshka?❄️кде
29.08.2017
13:26:42
лооол

это не то

Дмитрий
29.08.2017
13:27:29
Да блин, то как раз)

Тип без дженерика всегда можно было, но это не о том ваще type T<A = X> = A T<>

Плюсы именно от того что можно создать type Functor<A, B> = ... type Derived<A, B> = Functor<A, B>

У гканти для этого нужно таскать за собой и тип Functor впридачу к A и B

Дмитрий
29.08.2017
13:31:16
Что приводит к тому, что уже во второй производной у тебя уже 5 дженериков, когда тут — по прежнему два

andretshurotshka?❄️кде
29.08.2017
13:33:02
type Meme<T> = T<number> type HKT = Meme<Observable>

Я про это

Дмитрий
29.08.2017
13:33:28
Вот по примеру в его статье Ожидание: export function toUpperCase<M>(data: Data<M>): Data<M> Реальность: export function toUpperCase<Data, M>(data: HKT<Data, M>): HKT<Data, M>

andretshurotshka?❄️кде
29.08.2017
13:33:36
>(

Дмитрий
29.08.2017
13:33:58
(((

Дмитрий
29.08.2017
13:34:25
Его статья про его ожидания

andretshurotshka?❄️кде
29.08.2017
13:34:33
Дмитрий
29.08.2017
13:34:36
На что он надеялся

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