
Alexander
05.05.2017
14:41:28
но это как-то печально
можно попробовать исправить клиента конечно
наверное это будет правильно

Misha
05.05.2017
14:44:10
печально, но если кроме как "все ссылки пропали" другого условия нет, то это только GC может знать

Google

Misha
05.05.2017
14:44:27
а как сделано в distributed-processes?
там же похожую задачу надо решать

Anton
05.05.2017
15:31:21
/you

? animufag ?
05.05.2017
15:34:16
какой был бы эффект если бы работало? и почему все это проверяют в чатах

Warren
05.05.2017
15:47:45
/you
бля
нажал случайно
вот наверное почему

Alexander
05.05.2017
16:01:06
вообще там есть финализаторы на всякие каналы

Misha
05.05.2017
16:05:07
а всякие monitoring events как приходят тогда?
то есть если удаленный процесс сдох, то можно на разрыв соединения отреагировать наверное, а локально как?
а, это я туплю, там же все в Process завернуто, так что можно все что угодно сделать

Google

Alexander
05.05.2017
16:17:12
а где почитать про првильное использование SomeAsyncExceptions?
а то лень в сырцы лезть, а в хаддоках не все ясно
которое в районе 8.0 появилось

blkmrkt
05.05.2017
20:12:33
вот только не хватает go to definition по правому клику, чтоб понять откуда у ф-ии ноги

Дмитрий
05.05.2017
20:28:01

? animufag ?
05.05.2017
20:28:06

Дмитрий
05.05.2017
20:28:21
И ещё чисто с клавиатуры Ctrl + F12

blkmrkt
05.05.2017
20:29:28

? animufag ?
05.05.2017
20:30:26
и так на всех?
если loop на следующей строке нажать он сообразит?

blkmrkt
05.05.2017
20:32:00

? animufag ?
05.05.2017
20:34:01
ну я так интересуюсь скорее. @ZeroBias думаю настраивал vscode с хаскелом

blkmrkt
05.05.2017
22:05:02
вот поставил VS Code + Haskero, вообще топ

? animufag ?
05.05.2017
22:07:53
ну у него хотя бы коммиты свежие
это полная замена плагину ghc-mode?

blkmrkt
05.05.2017
22:49:55

Alexey
06.05.2017
11:13:22
вот поставил VS Code + Haskero, вообще топ
А ты с атомом сравнивал? Я какое-то время назад играл. И показалось, что VSCode+Haskero быстрее, но менее функционален, чем атом с ghc-mod и прочими плагинами. Вернулся в атом. Если теперь VS и быстрее, и умнее, то это здорово.

blkmrkt
06.05.2017
11:13:55

Google

Alexey
06.05.2017
11:16:46

blkmrkt
06.05.2017
11:17:13

Тёма
06.05.2017
11:19:00
Может он индексы строит, потому и не работает. А потом построил и начал работать.
Не пользовался vs в принципе

Arseniy
06.05.2017
11:25:25
vim..

Евгений
06.05.2017
11:39:13
А чо кто neovim-haskell ставил?

blkmrkt
06.05.2017
11:43:00
говорят с емаксом лучший иде хаскеля, но я с ним не справился. Точнее все настроил, но слишком сложный интерфейс

Aleh
06.05.2017
11:44:20

Anton
06.05.2017
12:39:04
О, что за шрифт?

blkmrkt
06.05.2017
12:39:32

Anton
06.05.2017
12:40:48
Спасибо, приглянулся мне)

A
06.05.2017
13:09:06
крайне приятный и кастомизируемый шрифтец. сам на нем сижу давно

Boris
06.05.2017
18:56:02
Хаха

Alexander
07.05.2017
18:22:41
Привет, подсажите как прочитать три числа из входного потока ?
То есть входные даныые 6 6 4. Нужно прочитать числа. Какие функции использовать ?

Max
07.05.2017
18:23:35

Dmitry
07.05.2017
18:30:23
fmap read . words <$> getContents
fmap read . take 3 . words <$> getContents

blkmrkt
07.05.2017
18:32:04

Alexander
07.05.2017
18:43:47
или getLine если принципиально что они в одной строке и дальше вычитывать не надо

Google

Alexander
07.05.2017
18:45:34
В одной строке должны нахдиться это условие задачи.

Dmitry
07.05.2017
18:50:52
λ> n <- fmap read . take 3 . words <$> getLine :: IO [Int]
12 3 4
λ> n
[12,3,4]
λ>

Alexander
07.05.2017
18:52:13
спасибо

Oleg
07.05.2017
19:27:39
import qualified Data.ByteString.Char8 as BS
-- getInts::IO [Int]
-- getInts = fmap (unfoldr readOne) BS.getLine where
-- readOne s = do
-- (x , s') <- BS.readInt s
-- return (x, BS.drop 1 s')
getInts::IO [Int]
getInts = go <$> BS.getLine where
go s = case BS.readInt s of
Nothing -> []
Just (x, s') -> x : go (BS.drop 1 s')
getInt::IO Int
getInt = do
line <- BS.getLine
let Just (x, _ ) = BS.readInt line
return x
getInt2::IO (Int,Int)
getInt2 = do
line <- BS.getLine
let Just (x, l') = BS.readInt line
Just (y, _) = BS.readInt $ BS.drop 1 l'
return (x,y)
getInt3::IO (Int,Int, Int)
getInt3 = do
line <- BS.getLine
let Just (x, l') = BS.readInt line
Just (y, l'') = BS.readInt $ BS.drop 1 l'
Just (z, _) = BS.readInt $ BS.drop 1 l''
return (x,y,z)


Alexander
07.05.2017
19:43:41
http://codeforces.com/problemset

Oleg
07.05.2017
19:46:15
На хакерранке ещё вытянул бы, а на кодфорсес - используй что угодно, кроме read
везде, где input начинается от 10^5

Vladimir
07.05.2017
19:48:18
read супермедленный
у меня лишь только в одной спортивной задачке медленный cin из C++ был ботлнеком. далеко не во всех задачах подразумевается гигантский инпут

Oleg
07.05.2017
19:49:22

Vladimir
07.05.2017
19:50:11
зачем вообще эти задачи на хаскеле решать? одно мучение

Oleg
07.05.2017
19:50:30
отнюдь
dp на хаскеллевских array вообще офигенно выглядит

Vladimir
07.05.2017
19:51:43
на списках тоже можно вроде))

Oleg
07.05.2017
19:52:19

Vladimir
07.05.2017
19:53:52

Oleg
07.05.2017
19:56:56

Google

Oleg
07.05.2017
19:57:20
import qualified Data.ByteString.Char8 as BS
-- getInts::IO [Int]
-- getInts = fmap (unfoldr readOne) BS.getLine where
-- readOne s = do
-- (x , s') <- BS.readInt s
-- return (x, BS.drop 1 s')
getInts::IO [Int]
getInts = go <$> BS.getLine where
go s = case BS.readInt s of
Nothing -> []
Just (x, s') -> x : go (BS.drop 1 s')
getInt::IO Int
getInt = do
line <- BS.getLine
let Just (x, _ ) = BS.readInt line
return x
getInt2::IO (Int,Int)
getInt2 = do
line <- BS.getLine
let Just (x, l') = BS.readInt line
Just (y, _) = BS.readInt $ BS.drop 1 l'
return (x,y)
getInt3::IO (Int,Int, Int)
getInt3 = do
line <- BS.getLine
let Just (x, l') = BS.readInt line
Just (y, l'') = BS.readInt $ BS.drop 1 l'
Just (z, _) = BS.readInt $ BS.drop 1 l''
return (x,y,z)


Dmitry
07.05.2017
19:58:20
На Haskell может хотеться решать задачи ради челленджа, чтобы узнать получше язык и, возможно, доказать (себе или всем остальным), что на нём можно писать олимипадные задачи. Например, техника ленивого динамического программирования очень изящная и простая:
http://jelv.is/blog/Lazy-Dynamic-Programming/
Другое дело, что на codeforces используется следующая команда для компиляции решений на Haskell (не говоря уже о том, что компилятор вообще 7.8.3):
ghc --make -O %s
А это значит, что никакого эффективного представления текста, никаких структур данных типа Map или HashMap, даже монады State нет и прочего. Поэтому про серьёзное олимпиадное программирование задач на производительность с большими ограничениями можно забыть. Все эти вещи (ну, кроме монады State) в остальных привычных для олимпиадного программирования языках просто уже находятся в стандартной библиотеке. То есть данная система тупо не учитывает особенности экосистемы языка. К сожалению, я не видел хорошей в этом плане платформы для решения олимпиадных задач на Haskell :(
Так как все эти вещи не в base, а в различных библиотека


Artyom
07.05.2017
20:00:16
containers вроде точно где-то давали использовать
то ли на spoj, то ли на CF


Oleg
07.05.2017
20:05:59
На Haskell может хотеться решать задачи ради челленджа, чтобы узнать получше язык и, возможно, доказать (себе или всем остальным), что на нём можно писать олимипадные задачи. Например, техника ленивого динамического программирования очень изящная и простая:
http://jelv.is/blog/Lazy-Dynamic-Programming/
Другое дело, что на codeforces используется следующая команда для компиляции решений на Haskell (не говоря уже о том, что компилятор вообще 7.8.3):
ghc --make -O %s
А это значит, что никакого эффективного представления текста, никаких структур данных типа Map или HashMap, даже монады State нет и прочего. Поэтому про серьёзное олимпиадное программирование задач на производительность с большими ограничениями можно забыть. Все эти вещи (ну, кроме монады State) в остальных привычных для олимпиадного программирования языках просто уже находятся в стандартной библиотеке. То есть данная система тупо не учитывает особенности экосистемы языка. К сожалению, я не видел хорошей в этом плане платформы для решения олимпиадных задач на Haskell :(
есть там containers, нормально часто Map и IntMap Заходит, да и State


Alexander
07.05.2017
20:19:08
и vectors
а то иначе приходится использовать array для которого ни одного разумного довода в 2017 нет

Kit
07.05.2017
22:38:52

Dmitry
08.05.2017
04:13:21
а какой смысл решать спортивные задачи на языке, которого не знаешь?

Alexander
08.05.2017
04:28:20
не использовать как data structure, как control норм

Alexander
08.05.2017
07:46:50

Dmitry
08.05.2017
07:48:51
ну просто вряд ли достишнешь высоких резутьтатов на языке, которым не владеешь. если же это просто для практики, то это ок, конечно.