Qual è il modo standard di inserire un elemento in una posizione specifica in un elenco in OCaml. È consentita solo la ricorsione. Nessuna operazione di assegnazione è consentita.OCaml inserisce un elemento nell'elenco
Il mio obiettivo è comprimere un grafico in ocaml rimuovendo i vertici con in_degree = out_degree = 1. Per questo motivo ho bisogno di rimuovere i bordi adiacenti per creare un singolo bordo. Ora i bordi sono in una lista [(6,7); (1,2); (2,3); (5,4)]. Quindi ho bisogno di rimuovere quei bordi dall'elenco e aggiungere un singolo bordo. quindi l'elenco sopra apparirà ora come [(6,7); (1,3); (5,4)]. Qui vediamo (1,2); (2,3) è rimosso e (1,3) è inserito nella seconda posizione. Ho ideato un algoritmo per questo. Ma per fare questo ho bisogno di sapere come posso rimuovere i bordi (1,2); (2,3) dalla posizione 2,3 e inserire (1,3) in posizione 2 senza alcuna variabile esplicita e in modo ricorsivo.
Suggerirei, se possibile, di abbandonare la lista e di usare una struttura dati 'Set'. – nlucaroni
"Solo la ricorsione è consentita", "senza alcuna variabile esplicita" - sembra una specie di compito a casa ... vero? – lambdapower
sì è una parte di un compito a casa, ma non ho chiesto la soluzione del problema dei compiti a casa. Ho ideato un algoritmo e per usare quell'algoritmo che avevo bisogno di fare questa operazione sulla lista. Quello che stavo chiedendo. I miei compiti erano di comprimere i grafici in ocaml. Qui non sto chiedendo di questo problema. Sto chiedendo sulla lista. –