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
люблю эти лигатуры (шрифт Fira Code)
Как неравно получается?
Anonymous
там
Vladislav
похоже что все держалось на нескольких людях, которые недавно ушли (один из них в фб)
Anonymous
лол
Anonymous
жизнь боль
кстати, а почему хаскелль так мало популярен в продакшене?
вполне популярен, пока переписывают легаси с плюсов в финансовой сфере на хаскель
до попсовых ниш попозже дойдет
Vladislav
а как он в финансовой сфере со своим GC живет?
Dima
никак
Dima
ты про скорость? 20 милионов операций в секунду на одном хосте, норм?
Vladislav
если речь про HFT, нужна предсказуемая latency
Dima
а вы сами то такой софт писали?
Vladislav
для java есть специальные jvm со специальными GC, а для хаскеля?
пока нет, знакомый под битки пилит
если речь про HFT, нужна предсказуемая latency
это все равно, с реалтаймоси идет
Vladislav
ну вот, я пока не слышал про реалтаймовый runtime для хаскеля
Quet
как будто gc для кого-то проблема в финансовой сфере :р
Yuri
вполне популярен, пока переписывают легаси с плюсов в финансовой сфере на хаскель
А можно этот момент подробнее? Я как раз из этой сферы, и пока что рабочий язык R, постепенно апплаюсь в HFT на C++, но вообще очень хотелось бы в будущем работать в финансах с Хаскеллем. Кто вообще из фондов с ним работает, есть какие-то кейсы?)
мониторинг буржнета
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
там на скрине две ошибки
Ilya
Окей, попробуй в конец main= ... дописать >> return ()
Ilya
Жутко с телефона писать
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
реально
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 - специальная функция, которую вычисляет рантайм, чтобы получить императивную программу для выполнения