Нда. Почувствовал себя полным идиотом.
Но мне показалось довольно неожиданным, что высокоуровневый язык вот так сразу тыкает тебя носом в буфер stdout. За n лет программирования на C# я про буфер stdout ни разу не вспомнил.
... << RSDN@Home 1.2.0 alpha 4 rev. 1228>>
'You may call it "nonsense" if you like, but I'VE heard nonsense, compared with which that would be as sensible as a dictionary!' (c) Lewis Carroll
Re[3]: [Haskell]Компиляция и путешествие во времени.
Здравствуйте, Klapaucius, Вы писали:
K>Ну, я думаю, что ask должен гарантировать, что вопрос появляется раньше, чем ожидается ответ. Т.е. лучше сделать как-то так: K>
Здравствуйте, geniepro, Вы писали:
K>>Ну, я думаю, что ask должен гарантировать, что вопрос появляется раньше, чем ожидается ответ. Т.е. лучше сделать как-то так: K>>
Получается, что у скомпилированного хаскелла кривая консоль (в составе его рантайма)?
Если getLine введённые символы из stdin выводит эхом в stdout, то — по-человечески, эхо-вывод должен оказаться в буфере после того, что туда было накидано.
А если эхо живёт своей независимой жизнью... Ну, понятно, как это можно сделать, и даже понятно, почему. (Потому что консоль лежит ниже буферизованного ввода-вывода).
Но остаётся вопрос: какого чёрта?!
... << RSDN@Home 1.2.0 alpha 4 rev. 1207>>
Перекуём баги на фичи!
Re[5]: [Haskell]Компиляция и путешествие во времени.
Здравствуйте, Кодт, Вы писали:
К>Получается, что у скомпилированного хаскелла кривая консоль (в составе его рантайма)?
Почему-то там буферизация ввода-вывода включена по умолчанию...
Вроде бы в линуксе тоже так.
К>Если getLine введённые символы из stdin выводит эхом в stdout, то — по-человечески, эхо-вывод должен оказаться в буфере после того, что туда было накидано. К>А если эхо живёт своей независимой жизнью... Ну, понятно, как это можно сделать, и даже понятно, почему. (Потому что консоль лежит ниже буферизованного ввода-вывода). К>Но остаётся вопрос: какого чёрта?!