Spec-Zone.ru › Haskell 7

System.Console.Haskeline.IO

Safe Haskell None
Язык Haskell98

Описание

Этот модуль предоставляет управляемый, основанный на IO интерфейс к Haskeline, что может быть проще для интеграции в некоторые существующие программы или библиотеки.

В идеале, рекомендуется использовать более безопасный, монадический API из System.Console.Haskeline, если это возможно, вместо функций явного управления состоянием этого модуля.

Эквивалентный пример REPL:

import System.Console.Haskeline
import System.Console.Haskeline.IO
import Control.Concurrent

main = bracketOnError (initializeInput defaultSettings)
            cancelInput -- This will only be called if an exception such
                            -- as a SigINT is received.
            (\hd -> loop hd >> closeInput hd)
    where
        loop :: InputState -> IO ()
        loop hd = do
            minput <- queryInput hd (getInputLine "% ")
            case minput of
                Nothing -> return ()
                Just "quit" -> return ()
                Just input -> do queryInput hd $ outputStrLn
                                    $ "Input was: " ++ input
                                 loop hd

data InputState Источник

initializeInput :: Settings IO -> IO InputState Источник

Инициализировать сеанс взаимодействия с пользователем в формате строк.

closeInput :: InputState -> IO () Источник

Завершить и очистить сеанс взаимодействия с пользователем в формате строк. Блокируется до завершения существующего вызова queryInput.

cancelInput :: InputState -> IO () Источник

Отменить и очистить сеанс взаимодействия с пользователем. Не блокируется до завершения существующего вызова queryInput.

queryInput :: InputState -> InputT IO a -> IO a Источник

Выполнить одно действие (например, getInputLine) в рамках сеанса взаимодействия с пользователем.

Например, несколько вызовов queryInput с использованием того же InputState будут совместно использовать ту же историю ввода. В отличие от этого, несколько вызовов runInputT будут использовать отдельные истории, если они не используют один и тот же файл истории.

Эта функция не должна вызываться для закрытого или отменённого InputState.

© The University of Glasgow and others
Licensed under a BSD-style license (see top of the page).
https://downloads.haskell.org/~ghc/7.10.3/docs/html/libraries/haskeline-0.7.2.1/System-Console-Haskeline-IO.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API