私は、特定の要素が実際にリストに入っている場所を教えるシンプルな関数を作成しました。最初の位置は0:リスト内の要素を見つける
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
です。これは簡単であり、動作します(それでも、改善のためのすべての提案は大歓迎です)。私はやることができなかった何
は、この機能で、x
がリストに複数回発生した場合には、それは私に位置x
のを伝えるようにすることです。 これまでの私の試行錯誤は、解決策に近づいていません。私は実際にあなたが私が追求しているアプローチの例を作るためにそれを掲示しています。
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
私は出力としてリストを作成するとは思いませんでした。貴重な提案をありがとう! – Worice