2014-11-28 3 views
0

Я новичок в программировании haskell. Я хотел бы привести пример того, как я могу выйти из основной программы, введя команду (например, QUIT) и вернитесь к экрану Prelude> по умолчанию. Я использую интерпретатор GHC 7.8.3. Пожалуйста, также укажите, какой модуль (ы) мне нужно будет импортировать, если таковые имеются. Я искал все и пробовал разные вещи, но ничего не работает. На самом деле хочу знать, как это сделать как можно скорее. Большое спасибо заранееКакова пример реализации кода выхода для программы Haskell, которая возвращается к умолчанию Prelude> screen GHC 7.8.3

+0

Возможно, мне что-то не хватает, но если вы запустите 'main' из GHCI, если он завершит с кодом ошибки (то есть он не сработает), вы вернетесь к интерпретатору. – user2407038

ответ

0

Этот SO ответ содержит основной для чтения выполнить цикл: https://stackoverflow.com/a/27094682/866915

Когда вы видите Prelude> подсказку вы действуете в рамках программы ghci, и вы получите обратно к той строке, когда функцию, которую вы вызвали возвратами.

Сокращенный пример:

main = do 
    let loop = do putStr "Type QUIT to quit: " 
       str <- getLine 
       if str == "QUIT" 
        then return() 
        else loop 
    loop 
+0

Очень хорошо. На том, что я искал. Мои знания растут, и теперь я могу оценить некоторые из моих собственных вариантов :). большое спасибо – gin

5

Вы можете использовать одну из функций из the System.Exit module. Самое простое применение, вероятно, будет что-то вроде этого:

import System.Exit (exitSuccess) 

main = exitSuccess 

Конечно, это не большой полезности в этом примере, но вы можете поместить его везде, где IO() можно использовать, и она будет завершать работу программы. В GHCi исключение, которое он выбрасывает, будет поймано, и вы вернетесь к подсказке Prelude> после строки *** Exception: ExitSuccess.

Смежные вопросы