Мелкие улучшения по коду

This commit is contained in:
2024-12-09 20:49:16 +03:00
parent bf4d97da90
commit 659ccec528
2 changed files with 19 additions and 12 deletions

View File

@@ -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

View File

@@ -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)
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)