ibt es eine Möglichkeit, unendliche und endliche Listen zu trenne
Ich schreibe zum Beispiel eine Funktion für Listen und möchte die Längenfunktion @ verwende
foo :: [a] -> Bool
foo xs = length xs == 100
Wie kann jemand verstehen, ob diese Funktion mit unendlichen Listen verwendet werden kann oder nicht?
Oder sollte ich immer an unendliche Listen denken und so etwas benutzen
foo :: [a] -> Bool
foo xs = length (take 101 xs) == 100
Anstatt Länge direkt zu verwenden?
Was wäre, wenn haskell einen FiniteList-Typ hätte, dann wären length und foo
length :: FiniteList a -> Int
foo :: FiniteList a -> Bool