Vladislav
спонсируют, но есть ли у них что-то в продакшн на нем?
Vladislav
https://github.com/Microsoft/bond
Vladislav
я только это нашел, аналог thrift/protobuf
Vladislav
https://www.quora.com/How-does-Microsoft-use-Haskell/answer/Bartosz-Milewski?srid=pkWM
Anonymous
Anonymous
Anonymous
там
Vladislav
похоже что все держалось на нескольких людях, которые недавно ушли (один из них в фб)
Anonymous
лол
Anonymous
жизнь боль
ㅤ
до попсовых ниш попозже дойдет
Vladislav
а как он в финансовой сфере со своим GC живет?
Dima
никак
Dima
ㅤ
ㅤ
ты про скорость? 20 милионов операций в секунду на одном хосте, норм?
Vladislav
если речь про HFT, нужна предсказуемая latency
ㅤ
Dima
а вы сами то такой софт писали?
Vladislav
для java есть специальные jvm со специальными GC, а для хаскеля?
ㅤ
пока нет, знакомый под битки пилит
Vladislav
ㅤ
Vladislav
ну вот, я пока не слышал про реалтаймовый runtime для хаскеля
Quet
как будто gc для кого-то проблема в финансовой сфере :р
ㅤ
ㅤ
мониторинг буржнета
Yuri
Ну, просто с блокчейном сложная тема, там транзакционные издержки очень высокие и неявные.
Я понял, спасибо) Буду надеяться, что эта тема яснее станет
Vladislav
как писать/использовать на хаскелле эффективные структуры данных, не заворачивая их в IO/ST монады?
Anonymous
как сделать нотацию для IO ProcessHandle?
Anonymous
Anonymous
первая ошибка с -> IO ProcessHandle
Anonymous
вторая с -> IO ()
Ilya
У тебя мэйн что возвращает?
Ilya
Io processhandle
Anonymous
import System.Process
coolTts :: String -> IO ProcessHandle
coolTts x = runCommand $ "powershell.exe .\\tts.ps1 " ++ show x
main :: IO ()
main = coolTts $ concat $ repeat "sas"
Ilya
Не, это должно быть ио
Ilya
Ио ()
Anonymous
так тоже не работает
Ilya
А на деле Ио процессхэндл
Anonymous
Anonymous
там на скрине две ошибки
Ilya
Окей, попробуй в конец main= ... дописать >> return ()
Ilya
Жутко с телефона писать
Anonymous
Anonymous
Vladislav
main = (coolTts $ concat $ repeat "sas") » return ()
Vladislav
или даже main = do coolTts $ concat $ repeat "sas"; return ()
Ilya
короче
Ilya
у тебя сигнатура main :: IO
Ilya
а ты ему подсовываешь IO Processhandle
Vladislav
main :: IO ()
Ilya
да
Ilya
сори
Ilya
на твоей счастье есть (»)
Ilya
(Monad m) => (») :: m a -> m b -> m b
Ilya
вот и воспользуйся этим
Ilya
с do то же самое
Vladislav
do - просто синтаксический сахар, транслируемый в вызовы (») и лямбды
Ilya
на книжках по хаскелю надо писать "do убивает"
Ilya
реально
Anonymous
Ilya
main = (coolTts $ concat $ repeat "sas") » return ()
Anonymous
ну это я уже делал
Anonymous
оно не помогает
Anonymous
а не
Anonymous
скомпилило
Ilya
а мне помогает)
Ilya
:D
Ilya
а так как почти любой первый опыт с do — это еще и getLine/putStrLn - то все, пиздец, человек сразу видит родную императивщинку
Anonymous
а еще оно мне убило систему вызовами tts из dll бесконечными
Anonymous
есть интервальное выполнение в хаскеле?
Ilya
Это что такое?
Anonymous
ну чтоб выполнялось каждые n секунд или чего там
Anonymous
или нужно sleep/что там использовать?
Vladislav
Кто-нибудь пробовал что-то писать на ATS? http://www.ats-lang.org/
Vladislav
или idris http://www.idris-lang.org/
Vladislav
к вопросу о понимании IO-монады и императивщины в хаскелл, помогает считать что в "IO a" хранится императивная программа, возвращающая a на выходе. Программа на хаскелл на самом деле занимается тем, что конструирует императивную программу из "кирпичиков" с помощью оператора композиции (»). main - специальная функция, которую вычисляет рантайм, чтобы получить императивную программу для выполнения