Haskell: реальная реализация монады ввода-вывода на другом языке?

Как на самом деле реализована монада ввода-вывода? В смысле, какова будет фактическая реализация main функция?

Как мне вызвать функцию haskell (IO) с другого языка и нужно ли мне в этом случае поддерживать IO самостоятельно?

Выполняет ли main действия ввода-вывода (лениво) в качестве ссылок а потом им позвонить? Или это работа переводчика, когда он находит действия по-своему и может их вызывать? А может еще что-то?

Есть ли хорошая реализация монады ввода-вывода на другом языке, которая может помочь глубже понять, что происходит в основной функции?

Изменить:

Такое hGetContents меня сильно смущает и заставляет меня неуверенно понять, как Ввод-вывод действительно реализован.

Хорошо, допустим, у меня есть очень простой интерпретатор на чистом языке Haskell, который, к сожалению, не имеет поддержки ввода-вывода, и из любопытства я хочу добавить к нему эти действия ввода-вывода (также трюки unsafeIO ). Трудно получить его от GHC, Hugs или других.

15
задан Jonathan Cast 8 December 2015 в 00:15
поделиться