
Yuriy
30.06.2018
18:05:08
может, образы от stack подойдут?

Евгений
30.06.2018
18:05:17

Andrey
30.06.2018
18:05:41

A64m
30.06.2018
18:11:51
а официальный чем не подходит https://hub.docker.com/_/haskell/ ?

Google

Andy
30.06.2018
18:12:55

Евгений
30.06.2018
18:13:40
Нет, я круд пишу :(

Andrey
30.06.2018
18:14:29

Yuriy
30.06.2018
19:28:47
у нас есть инструмент для построения графика зависимости времени выполнения от какого-нибудь параметра?
или надо просто criterion несколько раз запустить?

Denis
30.06.2018
20:09:19

Yuriy
30.06.2018
20:18:30

A64m
01.07.2018
08:28:35
успели первую альфу 8.6 в июне сделать
Sat Jun 30 21:26:34 UTC 2018
даже несколько часов в запасе еще оставалось
хаскель изменился до неузнаваемости, конечно
> for_ [0, 10_000 .. 100_000] \i -> print i

Maxim
01.07.2018
08:37:22

Yuriy
01.07.2018
08:39:53

kana
01.07.2018
08:40:48

Google

kana
01.07.2018
08:40:52
вот теперь заживем

Ilya
01.07.2018
08:51:18
?
литералы для разрядов и доллар не нужен перед лямбдой

A64m
01.07.2018
08:59:45
в сентябре, наверное
можно начинать ждать

kana
01.07.2018
09:01:34

Leonid
01.07.2018
09:04:07

A64m
01.07.2018
09:05:06

Dmitry
01.07.2018
09:08:43

A64m
01.07.2018
09:09:30
ну, конечно хорошо

Dmitry
01.07.2018
09:10:21
Разделители разрядов мне тоже понравились
А доллар, видимо по \ определяется

A64m
01.07.2018
09:10:49
главное изменение до неузнаваемости - тайплевел пролог больше не пролог

Yuriy
01.07.2018
09:11:11
Now you can do in Haskell without dollars! Успешно избегаем успех!

Dmitry
01.07.2018
09:11:33

A64m
01.07.2018
09:14:30
> Quantified class constraints have been proposed many years ago to raise the expressive power of type classes from Horn clauses to the universal fragment of Hereditiary Harrop logic.
хорновские дизъюнкты - это пролог

Dmitry
01.07.2018
09:20:47
В конкретно этом случае с долларом как-то лучше: replicateM_ 10 $ print "bang!". Хотя это уже вкусовщина.

A64m
01.07.2018
09:21:11
да всегда с долларом лучше

Google

Maxim
01.07.2018
09:29:43

Dmitry
01.07.2018
09:30:13
Зависит от уровня простоты человека

A64m
01.07.2018
09:30:49
непосредственно "простой человек" эту фичу, наверное, использовать не будет
для простого человека есть значительная фича deriving via
также надо отметить, что альфа вроде не ломает все либы с дженериками, хотя соотвествующее решение (не ломать) еще комитет не прошло

Alister
01.07.2018
09:54:27
надеюсь в хаскеле не будет проблемы питона с 2/3

IC
01.07.2018
09:58:53
Три мажора и давай до свидания.
Но это проблема не в языке, а в либах.
Хотя с ускорением релизов придётся поддерживать не на три назад, а на пять-шесть.

Alexander
01.07.2018
10:05:49

Alexander
01.07.2018
10:06:42
и в языке и в либах

IC
01.07.2018
10:06:54
Ну не знаю, я 7.10 ещё не дропнул.

Alexander
01.07.2018
10:07:00
и.е. оно на три версии обычно собирается, не более того
ну баги в 7.10 никто исправлять не будет
так же как баги в непоследней версии либ

IC
01.07.2018
10:09:43
Я про то, что последняя версия либ обычно работает с непоследними компиляторами.

Alexander
01.07.2018
10:10:31
собирается
это да, но нужно понимать, что ни в либах ни в компиляторе не бекпортят фиксы

Google

Alister
01.07.2018
10:20:27
вообще?

Pineapple
01.07.2018
10:21:40
Ну может кто-то сможет вспомнить редчайшие исключения

Alexander
01.07.2018
10:28:16
в ghc было полтора бекпорта, когда старый перестал вообще работать на новых убунтах

A64m
01.07.2018
11:35:07
да, бекпортили единичные фиксы для убунты и виндовс, когда все переставало работать вообще, в других случаях не бекпортили
ну и насчет продления собираемости либ - вот гхц так и продолжает политику собираемости двумя релизами и head, никто до 4 релизов не продлил после перехода на полугодовые. ну и это не первые полугодовые релизы гхц
а, да, ну и конечно фича 8.6 в которой самое загадочное - почему это не фича 5.00
Prelude> :doc map
'map' @f xs@ is the list obtained by applying @f@ to each element
of @xs@, i.e.,
> map f [x1, x2, ..., xn] == [f x1, f x2, ..., f xn]
> map f [x1, x2, ...] == [f x1, f x2, ...]


IC
01.07.2018
11:53:21
а, да, ну и конечно фича 8.6 в которой самое загадочное - почему это не фича 5.00
Prelude> :doc map
'map' @f xs@ is the list obtained by applying @f@ to each element
of @xs@, i.e.,
> map f [x1, x2, ..., xn] == [f x1, f x2, ..., f xn]
> map f [x1, x2, ...] == [f x1, f x2, ...]
надеюсь они догадались сделать ключик чтобы в :info это сразу выскакивало?

A64m
01.07.2018
11:54:12
нет конечно

Admin
ERROR: S client not available

Ilya
01.07.2018
12:33:45
а, да, ну и конечно фича 8.6 в которой самое загадочное - почему это не фича 5.00
Prelude> :doc map
'map' @f xs@ is the list obtained by applying @f@ to each element
of @xs@, i.e.,
> map f [x1, x2, ..., xn] == [f x1, f x2, ..., f xn]
> map f [x1, x2, ...] == [f x1, f x2, ...]
по сути хугл (новый), встроенный в ghci?
раз уж в новом всё равно поиска по типам нет, зачем он тогда будет нужен с этим :doc

Denis
01.07.2018
12:36:29

A64m
01.07.2018
12:37:13

Ilya
01.07.2018
12:38:18
и правда заживём теперь


A64m
01.07.2018
12:45:21
Prelude> _ :: [Int] -> Int
<interactive>:15:1: error:
* Found hole: _ :: [Int] -> Int
* In the expression: _ :: [Int] -> Int
In an equation for `it': it = _ :: [Int] -> Int
* Relevant bindings include
it :: [Int] -> Int (bound at <interactive>:15:1)
Valid hole fits include
head :: forall a. [a] -> a
last :: forall a. [a] -> a
length :: forall (t :: * -> *) a. Foldable t => t a -> Int
maximum :: forall (t :: * -> *) a. (Foldable t, Ord a) => t a -> a
minimum :: forall (t :: * -> *) a. (Foldable t, Ord a) => t a -> a
product :: forall (t :: * -> *) a. (Foldable t, Num a) => t a -> a
sum :: forall (t :: * -> *) a. (Foldable t, Num a) => t a -> a
Valid refinement hole fits include
foldl1 (_ :: Int -> Int -> Int)
where foldl1 :: forall (t :: * -> *) a.
Foldable t =>
(a -> a -> a) -> t a -> a
foldr1 (_ :: Int -> Int -> Int)
where foldr1 :: forall (t :: * -> *) a.
Foldable t =>
(a -> a -> a) -> t a -> a
foldl (_ :: Int -> Int -> Int) (_ :: Int)
where foldl :: forall (t :: * -> *) b a.
Foldable t =>
(b -> a -> b) -> b -> t a -> b
foldr (_ :: Int -> Int -> Int) (_ :: Int)
where foldr :: forall (t :: * -> *) a b.
Foldable t =>
(a -> b -> b) -> b -> t a -> b
const (_ :: Int)
where const :: forall a b. a -> b -> a
($) (_ :: [Int] -> Int)
where ($) :: forall a b. (a -> b) -> a -> b
fail (_ :: String)
where fail :: forall (m :: * -> *) a. Monad m => String -> m a
return (_ :: Int)
where return :: forall (m :: * -> *) a. Monad m => a -> m a
pure (_ :: Int)
where pure :: forall (f :: * -> *) a. Applicative f => a -> f a
($!) (_ :: [Int] -> Int)
where ($!) :: forall a b. (a -> b) -> a -> b
id (_ :: [Int] -> Int)
where id :: forall a. a -> a
head (_ :: [[Int] -> Int])
where head :: forall a. [a] -> a
last (_ :: [[Int] -> Int])
where last :: forall a. [a] -> a
asTypeOf (_ :: [Int] -> Int) (_ :: [Int] -> Int)
where asTypeOf :: forall a. a -> a -> a
(!!) (_ :: [[Int] -> Int]) (_ :: Int)
where (!!) :: forall a. [a] -> Int -> a
until (_ :: ([Int] -> Int) -> Bool)
(_ :: ([Int] -> Int) -> [Int] -> Int)
(_ :: [Int] -> Int)
where until :: forall a. (a -> Bool) -> (a -> a) -> a -> a
foldl1 (_ :: ([Int] -> Int) -> ([Int] -> Int) -> [Int] -> Int)
(_ :: [[Int] -> Int])
where foldl1 :: forall (t :: * -> *) a.
Foldable t =>
(a -> a -> a) -> t a -> a
foldr1 (_ :: ([Int] -> Int) -> ([Int] -> Int) -> [Int] -> Int)
(_ :: [[Int] -> Int])
where foldr1 :: forall (t :: * -> *) a.
Foldable t =>
(a -> a -> a) -> t a -> a


IC
01.07.2018
12:47:01
> Valid refinement hole fits include
как у больших прям

Alexander
01.07.2018
12:48:07
круто

A64m
01.07.2018
12:48:23
хаскель уверенностановится из наименее убогого яп наиболее убогим помогателем доказывателя

Alister
01.07.2018
12:50:40
агдо?
почему любой язык превращается в убогий, как только я начинаю его учить

Google

IC
01.07.2018
12:52:44
Потому что энтропия не может убывать

Alister
01.07.2018
12:53:36
надо бы наконец выучить го

A64m
01.07.2018
12:55:29
(да, выдача подсказывателя не с дефолтными настройками)

Yuriy
01.07.2018
13:00:14
на ICFP стоял студент с этой фичей поиска исправления по типу. у него это то ли курсовая, то ли дипломная была

Alister
01.07.2018
13:02:42
я вижу хаскель это механизм получения научных работ

Yuriy
01.07.2018
13:04:59
в том числе

Vladimir
01.07.2018
14:48:53

Daniel
01.07.2018
14:50:43
?

Yuriy
01.07.2018
15:55:09

Kirill
01.07.2018
16:55:22
Tweag I/O - Tracking performance over the entire software lifecyle
https://www.tweag.io/posts/2017-09-06-hyperion.html

Yuriy
01.07.2018
17:00:47

Kirill
01.07.2018
17:02:38
Ну построй график гнуплотом или ещё чем

Yuriy
01.07.2018
17:03:38
спасибо, я уже решил задачу одним критерионом

Kirill
01.07.2018
17:03:41
Или задача найти коробочное решение целиком?
Ещё лучше

Yuriy
01.07.2018
17:07:01
задача — разобраться, что тормозит в парсере, и ускорить
сейчас я выяснил, что парсер хотя бы линейный
есть какие-нибудь халявные рекомендации по отладке аттопарсеков?