Вывод кириллицы в GHCi
Для того, чтобы в консоли GHCi нормально отображалась кириллица, можно сделать следующее (при условии, что установлена Haskell Platform):
Установить пакет wl-pprint:
cabal install unescaping-print
Создать в домашнем каталоге файл .ghci (расположение) со следующим содержимым:
:set -interactive-print=UnescapingPrint.uprint
- Теперь можно пользоваться интерпретатором ghci с поддержкой кириллицы:
$ ghci
GHCi, version 8.4.3: http://www.haskell.org/ghc/ :? for help
Loaded GHCi configuration from /home/bravit/.ghci
Prelude> "Привет, мир"
"Привет, мир"
Полезно понимать причины поведения интерпретатора по умолчанию: вывод значений выражений выполняется функцией print
, которая вызывает для своего аргумента функцию show
. Последняя была определена более 20 лет назад и с тех пор практически не менялась, она заменяет любые не-ASCII символы на их коды. В предлагаемом решении мы фактически подменяем функцию print
в ghci, что позволяет видеть кириллицу, а заодно и любые юникодные символы (разумеется, при наличии шрифтов) без изменений.
Последнее изменение: суббота, 9 февраля 2019, 09:03