From 659ccec52825c422b765856cdd318d5939936ce5 Mon Sep 17 00:00:00 2001 From: Arity-T Date: Mon, 9 Dec 2024 20:49:16 +0300 Subject: [PATCH] =?UTF-8?q?=D0=9C=D0=B5=D0=BB=D0=BA=D0=B8=D0=B5=20=D1=83?= =?UTF-8?q?=D0=BB=D1=83=D1=87=D1=88=D0=B5=D0=BD=D0=B8=D1=8F=20=D0=BF=D0=BE?= =?UTF-8?q?=20=D0=BA=D0=BE=D0=B4=D1=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- coursework/part2/app/Main.hs | 2 +- coursework/part2/src/Lib.hs | 29 ++++++++++++++++++----------- 2 files changed, 19 insertions(+), 12 deletions(-) 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