Как работает управление историей в GHCI или других REPLs на основе Haskell? Поскольку Haskell - чистый язык, я предполагаю, что он реализован с использованием монады, возможно, state monad.Отслеживание истории в ghci
Просьба отметить, что я новичок в Haskell, поэтому, пожалуйста, предоставьте подробное объяснение, а не просто ссылку на источник.
история GHCi не реализуется в Haskell вообще, это является частью третьей стороной библиотека под названием 'readline', которая написана на C. –
Эта страница в Haskell Wiki [(link)] (https://wiki.haskell.org/Simple_StateT_use) содержит код для игры с угадыванием чисел, написанной с использованием трансформатора монада StateT. Если вы поймете, как работает этот код, я отвечу на ваш вопрос. Если вы не понимаете, как работает эта программа, я предлагаю вам ознакомиться с монадными и монадными трансформаторами. Вот некоторые переводы трансформаторов монады: [(link)] (https://en.wikibooks.org/wiki/Haskell/Monad_transformers) [(link)] (https://github.com/kqr/gists/blob/master /articles/gentle-introduction-monad-transformers.md) – ErikR
Спасибо, не стесняйтесь отвечать, и я прочитаю его после прочтения ссылок на трансформаторы. – dimid