
trump ? trump ? hillary
14.04.2016
17:57:10
там

Vladislav
14.04.2016
17:57:15
похоже что все держалось на нескольких людях, которые недавно ушли (один из них в фб)

trump ? trump ? hillary
14.04.2016
17:57:38
лол
жизнь боль

Google

Alex
14.04.2016
19:20:10
до попсовых ниш попозже дойдет

Vladislav
14.04.2016
19:20:39
а как он в финансовой сфере со своим GC живет?

Митко Соловец?
14.04.2016
19:20:44
никак

Alex
14.04.2016
19:21:21
ты про скорость? 20 милионов операций в секунду на одном хосте, норм?

Vladislav
14.04.2016
19:21:57
если речь про HFT, нужна предсказуемая latency

Alex
14.04.2016
19:22:12

Митко Соловец?
14.04.2016
19:22:31
а вы сами то такой софт писали?

Vladislav
14.04.2016
19:22:43
для java есть специальные jvm со специальными GC, а для хаскеля?

Alex
14.04.2016
19:22:44
пока нет, знакомый под битки пилит

Vladislav
14.04.2016
19:22:53

Alex
14.04.2016
19:23:17

Google

Vladislav
14.04.2016
19:24:22
ну вот, я пока не слышал про реалтаймовый runtime для хаскеля

Quet
14.04.2016
19:54:03
как будто gc для кого-то проблема в финансовой сфере :р

Yuri
14.04.2016
20:15:48

Alex
14.04.2016
20:17:22
мониторинг буржнета

Yuri
14.04.2016
20:18:32
Ну, просто с блокчейном сложная тема, там транзакционные издержки очень высокие и неявные.
Я понял, спасибо) Буду надеяться, что эта тема яснее станет

Vladislav
14.04.2016
20:21:57
как писать/использовать на хаскелле эффективные структуры данных, не заворачивая их в IO/ST монады?

trump ? trump ? hillary
14.04.2016
21:09:17
как сделать нотацию для IO ProcessHandle?
первая ошибка с -> IO ProcessHandle
вторая с -> IO ()

Ilya
14.04.2016
21:12:32
У тебя мэйн что возвращает?
Io processhandle

trump ? trump ? hillary
14.04.2016
21:12:55
import System.Process
coolTts :: String -> IO ProcessHandle
coolTts x = runCommand $ "powershell.exe .\\tts.ps1 " ++ show x
main :: IO ()
main = coolTts $ concat $ repeat "sas"

Ilya
14.04.2016
21:14:11
Не, это должно быть ио
Ио ()

trump ? trump ? hillary
14.04.2016
21:14:34
так тоже не работает

Ilya
14.04.2016
21:14:34
А на деле Ио процессхэндл

trump ? trump ? hillary
14.04.2016
21:14:43
там на скрине две ошибки

Ilya
14.04.2016
21:16:10
Окей, попробуй в конец main= ... дописать >> return ()

Google

Ilya
14.04.2016
21:16:34
Жутко с телефона писать

trump ? trump ? hillary
14.04.2016
21:17:22

Vladislav
14.04.2016
21:19:14
main = (coolTts $ concat $ repeat "sas") » return ()
или даже main = do coolTts $ concat $ repeat "sas"; return ()

Ilya
14.04.2016
21:21:59
короче
у тебя сигнатура main :: IO
а ты ему подсовываешь IO Processhandle

Vladislav
14.04.2016
21:23:48
main :: IO ()

Ilya
14.04.2016
21:23:57
да
сори
на твоей счастье есть (»)
(Monad m) => (») :: m a -> m b -> m b
вот и воспользуйся этим
с do то же самое

Vladislav
14.04.2016
21:26:36
do - просто синтаксический сахар, транслируемый в вызовы (») и лямбды

Ilya
14.04.2016
21:27:22
на книжках по хаскелю надо писать "do убивает"
реально

trump ? trump ? hillary
14.04.2016
21:28:11

Ilya
14.04.2016
21:28:39
main = (coolTts $ concat $ repeat "sas") » return ()

trump ? trump ? hillary
14.04.2016
21:28:49
ну это я уже делал

Google

trump ? trump ? hillary
14.04.2016
21:28:52
оно не помогает
а не
скомпилило

Ilya
14.04.2016
21:29:09
а мне помогает)
:D
а так как почти любой первый опыт с do — это еще и getLine/putStrLn - то все, пиздец, человек сразу видит родную императивщинку

trump ? trump ? hillary
14.04.2016
21:30:50
а еще оно мне убило систему вызовами tts из dll бесконечными
есть интервальное выполнение в хаскеле?

Ilya
14.04.2016
21:32:55
Это что такое?

trump ? trump ? hillary
14.04.2016
21:33:29
ну чтоб выполнялось каждые n секунд или чего там
или нужно sleep/что там использовать?

Vladislav
14.04.2016
21:36:10
Кто-нибудь пробовал что-то писать на ATS? http://www.ats-lang.org/
или idris http://www.idris-lang.org/
к вопросу о понимании IO-монады и императивщины в хаскелл, помогает считать что в "IO a" хранится императивная программа, возвращающая a на выходе. Программа на хаскелл на самом деле занимается тем, что конструирует императивную программу из "кирпичиков" с помощью оператора композиции (»). main - специальная функция, которую вычисляет рантайм, чтобы получить императивную программу для выполнения
а do-нотация - просто dsl для более удобного конструирования императивных программ

Ilya
14.04.2016
21:52:39
IO Monad Considered Harmful · in Code
https://blog.jle.im/entry/io-monad-considered-harmful.html
Вопросы все же остаются
Как определено (>>=) для IO? Или для MonadIO?

Vladislav
14.04.2016
21:58:11
а никак не определено, это встроенная конструкция
и ее нельзя определить, т.к. нельзя заглянуть внутрь IO a

Google

Vladislav
14.04.2016
21:59:39
хотя, если подумать, можно представить имплементацию, в которой IO a - в прямом смысле программа на каком-то конкретном языке
тогда можно будет определить (»=) в явном виде

Ilya
14.04.2016
22:00:01
Окей. Пусть так. Вся программа - хитро скомпозированное IO(), которое прогоняется
Не, ну а как в байт-код то оно компилируется) это и есть "программа на конкретном языке"

Vladislav
14.04.2016
22:01:04
тогда вся императивщина становится просто библиотекой-комбинатором программ на этом языке
компилируется, но implicitly
для кода на хаскелл IO a непрозрачна

Ilya
14.04.2016
22:02:08
В статье есть отступление

Vladislav
14.04.2016
22:02:27
а могла бы быть data IO a = Code String
я еще не дочитал

Ilya
14.04.2016
22:02:46
Что, мол, монадический интерфейс IO вовсе не must

Vladislav
14.04.2016
22:02:54
верно
просто он удобен

Ilya
14.04.2016
22:03:16
Никак не могу обернуть свой мозг вокруг этого

Vladislav
14.04.2016
22:03:29
но необязателен

Ilya
14.04.2016
22:03:41
А как было бы без >>= и >>
Как композировать-то тогда?

Vladislav
14.04.2016
22:04:14
достаточно (»=) и return, » через них определяется