diff --git a/coursework/part2/app/Main.hs b/coursework/part2/app/Main.hs index cd51245..63734bd 100644 --- a/coursework/part2/app/Main.hs +++ b/coursework/part2/app/Main.hs @@ -21,7 +21,7 @@ main = saveDictionary "dict2.txt" dict2 >> putStrLn "Введите начальное слово или пару слов для старта диалога:" >> getLine >>= \input2 -> - putStrLn "Введите количество сообщений M:" >> + putStrLn "Введите количество сообщений от каждой модели:" >> getLine >>= \ms -> let m = read ms :: Int in twoModelsDialog dict dict2 input2 m diff --git a/coursework/part2/src/Lib.hs b/coursework/part2/src/Lib.hs index f71e9ef..3c90ada 100644 --- a/coursework/part2/src/Lib.hs +++ b/coursework/part2/src/Lib.hs @@ -1,4 +1,10 @@ -module Lib where +module Lib ( + splitText, + buildDictionary, + saveDictionary, + processInput, + twoModelsDialog +) where import Data.Char (isLetter, toLower) import Data.Map (Map) @@ -93,13 +99,14 @@ twoModelsDialog dict1 dict2 start m = let first = generatePhrase dict1 start gen in putStrLn ("Модель 1: (" ++ start ++ ") " ++ unwords first) >> loop dict1 dict2 first m - where - loop d1 d2 prev 0 = return () - loop d1 d2 prev i = - putStr "Модель 2: " >> - dialogStep d2 prev >>= \resp -> - if null resp then return () else - putStr "Модель 1: " >> - dialogStep d1 resp >>= \resp2 -> - if null resp2 then return () else - loop d1 d2 resp2 (i-1) \ No newline at end of file + where + loop :: Map String [String] -> Map String [String] -> [String] -> Int -> IO () + loop _ _ _ 0 = return () + loop d1 d2 prev i = + putStr "Модель 2: " >> + dialogStep d2 prev >>= \resp -> + if null resp then return () else + putStr "Модель 1: " >> + dialogStep d1 resp >>= \resp2 -> + if null resp2 then return () else + loop d1 d2 resp2 (i-1) \ No newline at end of file