Es ist diese Funktion Index in "Erlang Programming":Warum wird "wann" in dieser Funktion verwendet?
index(0, [X|_]) -> X;
index(N, [_|Xs]) when N>0 -> index(N-1, Xs)
Ist das nicht der Wächter "wenn N> 0" überflüssig, weil der Musterabgleich? Der Aufruf des Index (0, Liste) wird niemals in der zweiten Klausel enden, also wird N immer> 0 sein. Oder liege ich hier völlig falsch?
Ich kenne Erlang nicht (nur OCaml), also werde ich es als Kommentar hinterlassen: Welches Muster würde N == - 1 entsprechen Meine Vermutung wäre die zweite (wenn es nicht für die Wache war) –
Rune FS , Das war mein erster Gedanke auch, aber Index (-1, [1,2,3]) führt zu "** Ausnahmefehler: keine Funktionsklausel Übereinstimmungstest: Index (-1, [1,2,3])" –
aber wenn du den Schutz entfernst passt das nicht dann? –