Es würde eine zufällige Reihenfolge der öffnenden geschweiften Klammern und eine passende Folge von schließenden Klammern machen. Hier ist meine (Teil-) Code:Verwenden Sie eine zufällige Variable mehrmals in Haskell
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
Es funktioniert nicht, da es eine neue ord
für jeden Shuffle erzeugt. Wie kann ich es an die ord
erinnern und es für beide Shuffle verwenden?
Ich denke, es wäre einfacher, Ihre Frage zu beantworten, wenn Ihr Code weniger partiell wäre (gibt uns etwas, das zumindest korrekte Syntax ist.) Im Moment ist es schwer zu sehen, was genau Ihr Problem ist. – HaskellElephant