
? animufag ?
29.08.2017
11:10:42

Nikita
29.08.2017
11:11:32

? animufag ?
29.08.2017
11:12:44

Denis
29.08.2017
11:14:28

Google

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

? animufag ?
29.08.2017
11:15:41

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

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
12:57:19

Denis
29.08.2017
13:00:49

Дмитрий
29.08.2017
13:01:01
Ну я вот тебе говорю
Анонс позже
Но я уже затестил

illiatshurotshka❄️
29.08.2017
13:01:45

Даниил
29.08.2017
13:07:30

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

Google

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

andretshurotshka?❄️кде
29.08.2017
13:11:40

Дмитрий
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 — функтора со всеми вытекающими)

andretshurotshka?❄️кде
29.08.2017
13:20:14
data Something ?

Google

andretshurotshka?❄️кде
29.08.2017
13:20:32
А
Gcanti так делал уже

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

Даниил
29.08.2017
13:21:54

Дмитрий
29.08.2017
13:22:04
У него для 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

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

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

andretshurotshka?❄️кде
29.08.2017
13:25:17

Дмитрий
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

andretshurotshka?❄️кде
29.08.2017
13:31:06

Дмитрий
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
(((

andretshurotshka?❄️кде
29.08.2017
13:34:16
Не про HKT

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

andretshurotshka?❄️кде
29.08.2017
13:34:33

Дмитрий
29.08.2017
13:34:36
На что он надеялся