0
무작위로 생성 된 int가 5보다 작은 경우 계속 루프를 검사하는 함수를 작성하려고합니다. 5보다 작 으면 "e"가 문자열에 추가되고, eee "가 생성 된 다음 루프 밖으로 나간다.문자열을 업데이트하기 위해 가변 상태 피하기
이 하스켈 코드 인쇄 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
하지만 가변 상태를 도입하지 않고 문자열을 수정하는 방법을 확실 해요.
이 사용하는 의사 하스켈 코드를 사용할 수 있습니다 달성하기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
모든 포인터를 유효 하스켈에 대한 의사 코드 위의 번역?