Я пытаюсь написать функцию, которая будет постоянно проверять цикл, если случайно генерируемое значение int меньше 5, если оно меньше 5, тогда «e» добавляется к строке, eee "генерируется, а затем выходит из цикла.Избегание изменяемого состояния для обновления String
код печатает Это Haskell, если случайное значение между 1 - 10 составляет менее 5:
useInt :: Int -> Int
useInt x = x
test :: IO()
test = do
let l = "eee";
int <- randomRIO (1, 10) :: IO Int
if(int < 5) then
putStrLn "less"
else
putStrLn "greater"
test
Но я не уверен, как изменить строку без введения изменяемого состояния.
Для достижения этой цели с помощью псевдокода Haskell можно использовать:
var mutableString = "" :
useInt :: Int -> Int
useInt x = x
test :: IO()
test = do
let l = "eee";
int <- randomRIO (1, 10) :: IO Int
while(mutableString != "eee"){
if(mutableString == "eee")
break out of loop
else
if(int < 5) then
mutableString = mutableString + "e"
putStrLn "less"
else
putStrLn "greater"
}
test
Есть указатели на перевод выше псевдокоде правомерного Haskell?