これは、中括弧を開き、中括弧で囲んでいるシーケンスをランダムにしたいと考えています。ここに私の(部分)コードです:Haskellで1つのランダム変数を複数回使用する
shuffle :: [a] -> IO [a]
ps xs ys = map snd . sort $ zip xs ys
opens = "[{("
closes = "]})"
parens = do
ord <- shuffle [0..length opens]
let os = ps ord opens
cs = reverse $ ps ord closes
それは、各シャッフルのための新しいord
を生成するのでそれは動作しません。 ord
を覚えて両方のシャッフルに使用するにはどうしたらいいですか?
あなたのコードが部分的ではない場合は、あなたの質問に答える方が簡単だと思います(少なくとも正しい構文です)。今はあなたの問題が何であるか正確に見るのは難しいです。 – HaskellElephant