Czy istnieje funkcja biblioteczna w Haskell, która pozwoli mi sprawdzić, czy lista jest kolejno zamawiana? na przykład. [1,2,3,4] jest ważny, [1,2,3,10] jest nieważny.Sprawdzanie, czy lista jest zamawiana kolejno
Zasadniczo mogę mieć listę, która obejmuje od 3 do 5 elementów i próbuję sprawdzić, czy lista jest porządkowana kolejno.
moja próba (nie jestem pewien, czy to właściwa droga do niego zbliżyć, wydaje się być zbyt wiele powtórzenie)
isSucc:: [Integer] -> Bool
isSucc[] = True
isSucc(x:y:zs) =
if (x+1) == y
then True && isSucc(y:zs)
else isSucc(y:zs)
Po mam tej pracy funkcji, zamierzam na temat korzystania do filtrowania list list (Zachowaj listę tylko na liście i tylko wtedy, gdy jest zamawiana kolejno)
Sposób na błędne zrozumienie pytania!Powinno być jasne, jak zmienić 'f', aby zrobić to, co chcesz. – MathematicalOrchid
Nigdy nie myślałem o zrobieniu kropli 1 w zamian. Wydaje się lepszym rozwiązaniem do wdrożenia, ale czy "spadek 1 xs" będzie droższy w porównaniu do '(x: xs)'? – rlhh
W rzeczywistości, 'tail' jest w porządku, gdy jest używany z' zipWith' w tym przypadku, jako przypadek porządku 'zipWith' ocenia jego argumenty. Ale to nie przypadek, że ocenia swoje argumenty w tej kolejności. – Carl