
Alexandr
01.09.2017
07:04:32
А вот someFunc :: a -> a -> a гарантирует, что все параметры и возвращаемое значение будут одного типа

Andrew
01.09.2017
07:18:41
Спасибо

Alexander
01.09.2017
07:19:14
@vlastachu я ожидал другой уровень публики, так бы по другому готовил
но про сигнатуры - согласен

Google

Евгений
01.09.2017
07:22:04
А запись доклада есть?

Ilya
01.09.2017
07:23:21
Например, функция с сигнатурой a -> a всего одна, это id, потому больше делать с каким-угодно-типом собственно и нечего, кроме как вернуть входное значение

Alexander
01.09.2017
08:01:23
@elemir90 маловероятно, с прошлых не было, во всяком случае доступных

Ilya
01.09.2017
08:33:48
если нужен State, то из какого пакета брать? mtl или transformers?

Oleg
01.09.2017
08:36:55
насколько мне известно, это один и тот же тип, а нужен ли тебе MTL - решай сам
т.е. mtl юзает типы из transformers

Ilya
01.09.2017
08:38:41
спасибо, значит возьму transformers
как-то можно попросить х-ль автоматически вывести инстанс Num для произведения двух типов? гугл молчит, там только GeneralizedNewtypeDeriving, но он для newtype
хочу так
data Prod = Prod Int Int deriving Num
только вместе интов мои собственные типы, для которых уже есть Num
наверное можно было бы завернуть кортеж в newtype, но блин для кортежей Num тоже не определён


Serghei
01.09.2017
11:35:03
$ docker pull nginx
Using default tag: latest
Error response from daemon: error parsing HTTP 403 response body: invalid character '<' looking for beginning of value: "<html><body><h1>403 Forbidden</h1>\nSince Docker is a US company, we must comply with US export control regulations. In an effort to comply with these, we now block all IP addresses that are located in Cuba, Iran, North Korea, Republic of Crimea, Sudan, and Syria. If you are not in one of these cities, countries, or regions and are blocked, please reach out to https://support.docker.com\n</body></html>\n\n"

Google

Serghei
01.09.2017
11:35:48
к слову о любви к ms и экстремизме

Vladimir
01.09.2017
11:54:17
$ docker pull nginx
Using default tag: latest
Error response from daemon: error parsing HTTP 403 response body: invalid character '<' looking for beginning of value: "<html><body><h1>403 Forbidden</h1>\nSince Docker is a US company, we must comply with US export control regulations. In an effort to comply with these, we now block all IP addresses that are located in Cuba, Iran, North Korea, Republic of Crimea, Sudan, and Syria. If you are not in one of these cities, countries, or regions and are blocked, please reach out to https://support.docker.com\n</body></html>\n\n"
ты из Крыма?
я еще слышал, что в Крыму корпоративный gmail не работает, а обычный работает

Serghei
01.09.2017
12:01:52
Причем здесь я или крым. Это может быть контейнер к кубе например. Не?
Я вообще не из росии

Ilya
01.09.2017
12:06:34

Serghei
01.09.2017
12:06:52
Нет конечно

Masson
01.09.2017
12:20:32
можно
^N^k^o
У вас же вимы и имаксы в основном, так?

Andrew
01.09.2017
12:24:21
так

sojalei
01.09.2017
12:24:52

Masson
01.09.2017
12:26:03
А профессионалы?

Yuriy
01.09.2017
12:28:57

Dmitry
01.09.2017
12:29:24
да

Alexander
01.09.2017
12:29:41
в основном - да
у всех - нет

Dmitry
01.09.2017
12:29:48
но я так и не освоил емакс (

Google

Yuriy
01.09.2017
12:30:03
я профессионал на Атоме
хотя да, в нашей команде 20% пользуются Атомом, 20% вскодом, 60% вимом

Ilya
01.09.2017
12:32:01
кроме Pair a b + Pair a' b' = Pair (a + a') (b + b') ещё что?

Yuriy
01.09.2017
12:32:37
комплексные числа мне на ум приходят в первую очередь
этот вариант тоже логичный

Ilya
01.09.2017
12:33:05
комплексные числа они для интов или флотов вместо этих a и b
а в случае произвольных типов, способ по-моему один

Alexander
01.09.2017
12:33:56
@cblp_su 5 человек?

Ilya
01.09.2017
12:33:57
кроме Pair a b + Pair a' b' = Pair (a + a') (b + b') ещё что?

Yuriy
01.09.2017
12:34:25
@Masteroid, Num не знает, с целыми числами ты работаешь или нет

Ilya
01.09.2017
12:34:30
вот именно

Alexander
01.09.2017
12:34:42
@Masteroid можно начать с fromInteger который есть в Num
я вижу варианты fromInteger x = Pair x x, Pair x 0, Pair 0 x
Pair sqrt(x) sqrt(x)

Ilya
01.09.2017
12:35:28
это ппц

Yuriy
01.09.2017
12:35:32
@Masteroid, я противоречия не вижу, но видимо, никому до тебя это просто не было нужно. запили патч в GHC

Ilya
01.09.2017
12:35:33
какие sqrt

Yuriy
01.09.2017
12:35:40

Google

Alexander
01.09.2017
12:36:11
@Masteroid да что угодно там может быть, с чего бы компилятору дерайвить это

Yuriy
01.09.2017
12:36:28

Index
01.09.2017
12:36:46
Можно дерайвить произведение Num как Num произведения

Andrew
01.09.2017
12:37:05
что такое vscode?

Yuriy
01.09.2017
12:37:11

Andrew
01.09.2017
12:37:13
visual studio ?

Index
01.09.2017
12:37:17
То есть data Pair = P Int Int получит fromInteger x = P (fromInteger x) (fromInteger x), и P a b + P x y = P (a + x) (b + y)
и это обобщается на N-арное произведение
и даже на (), hue hue

Yuriy
01.09.2017
12:37:40

Index
01.09.2017
12:38:54
lmgtfy это когда вместо общения с человеком ты предлагаешь общение с машиной. Может мне хочется, чтобы мне рассказали, а не ссылкой тыкнули
Или дали остроумную характеристику типа "это Atom от MS"

Ilya
01.09.2017
12:39:41
я не понимаю, почему вас удивляет, что Show, Read и прочую хрень можно тоже задерайвить сотней разных способов, но при этом компилятор выбирает один, самый естественный
а с Num удивляет

Index
01.09.2017
12:40:13
У Show и Read нет сотней разных способов

Vasiliy
01.09.2017
12:40:20
а для сумм как оно будет работать?

Index
01.09.2017
12:40:24
Там оно uniquely determined modulo whitespace

Andrei
01.09.2017
12:40:44

Vasiliy
01.09.2017
12:40:46
ну вот потому и удивляет

Google

Alexander
01.09.2017
12:41:12
тем более что там не только сложнеие

Yuriy
01.09.2017
12:41:48
что такое vscode?
модульный текстовый редактор на браузерном движке, визуально похожий на Visual Studio, пригоден для работы только с одним проектом

Alexander
01.09.2017
12:41:54
и это когда думаешь об этом лучше убирать удобные идентификаторы
и думать как о
data KJHgfdsugdfg = KJHgfd Int Int
тогда всякие слова типа Pair не будут отвклекать мозг и делать вид будто ответ очевиден

Index
01.09.2017
12:42:58
Мне нравится как ты сделал KJHgfd префиксом KJHgfdsugdfg

Ilya
01.09.2017
12:43:25

Alexander
01.09.2017
12:43:46
Int тут как раз добавляет сложностей

Ilya
01.09.2017
12:44:08
просто изначально я спрашивал про команду языка, чтобы можно было сразу вставить в ghci и проверить, что работает

Alexander
01.09.2017
12:44:11
было бы KJHgsdafsa a = KJHgs a a ситуация бы чуть-чуть менялась

Ilya
01.09.2017
12:44:11
а оказывается её вовсе нет

Alexander
01.09.2017
12:44:34
ну я не знаю что такое у тебя Pair

Yuriy
01.09.2017
12:44:35
по-моему, вполне естественное желание у товарища
зато компилятор умеет генерить всякий трэш
λ> data A = A deriving (Enum, Show)
λ> toEnum 1 :: A
*** Exception: toEnum{A}: tag (1) is outside of enumeration's range (0,0)

Alexander
01.09.2017
12:46:16
ну у Enum, Show, Read однозначное и документированное поведение
с Num сложнее
есть всякие GeneralizedNewType и Generic

Yuriy
01.09.2017
12:46:39
Num точно так же документирован

Alexander
01.09.2017
12:46:50
как он дерайвится?