ich mit Quick ich spiele, und stolperte über einige seltsamen VerhaltenErstellen einen Elemente-Generator mit einer unendlichen Liste
sample $ elements [1..5]
funktioniert wie erwartet, aber
sample $ elements [1..]
hängt in GHCI, auch bei Verwendung von ein endlicher Typ wie Int
sample $ elements [(1::Int)..]
Warum es nicht willkürlich drucken (S. un beabsichtigt :) groß Int
s?
aktualisieren
I @ amalloy der explanantion getestet haben von
sample $ elements ([1 .. ] :: [Int8])
verwendet, die beendet ist.
Danke, warum ist es im Durchschnitt "erreichen Länge/2 Elemente"? – dimid
Ich meine, darüber nachdenken. In einer Liste mit 'N'-Elementen, was ist der durchschnittliche Index? Die Mitte ist der Durchschnitt, und es ist bei Index 'N/2'. Da Sie sich gleichmäßig nach dem Zufallsprinzip entscheiden, ist Ihr durchschnittlicher Index der durchschnittliche Index der Liste. – amalloy
Richtig, aber warum sollten Sie die ersten '[len/2] - 1' Elemente durchqueren? Wenn Sie das Maximum 'Int' kennen, können Sie es in O (1) erhalten, indem Sie in 2 teilen. Entschuldigung, wenn ich etwas Offensichtliches vermisse, bin ich ein Anfänger mit Haskell. – dimid