Ich baute eine einfache Funktion, die mir sagt, wo ein bestimmtes Element tatsächlich in einer Liste ist. Die erste Position ist 0:Suchen Sie Elemente in der Liste
let rec foo79 =
fun k l ->
match k, l with
| k, [] -> failwith "What you are lookig for is not here"
| k, (x::xs) -> if x = k then 0
else 1 + foo79 k xs
Es ist einfach und funktioniert (trotzdem ist jeder Vorschlag, es zu verbessern, willkommen!).
Was ich mit dieser Funktion nicht zu tun, ist es mir die von x
Positionen zu machen sagen, in dem Fall, dass x
mehr mal in der Liste auftritt. Meine Versuche sind bis jetzt noch nicht einmal in der Nähe einer Lösung. Ich poste es gerade, um Ihnen ein Beispiel für den Ansatz zu geben, den ich verfolge.
let rec foo79b =
fun k l ->
match k, l with
| k, [] -> failwith "What you are lookig for is not here"
| k, (x::xs) -> if x = k & (x::xs) then 1 + foo79b k xs
elif x = k & [] then 0
else 1 + foo79b k xs
ich keine Liste als Ausgabe zu erstellen glaubte. Danke für den wertvollen Vorschlag! – Worice