L'applicazione di una funzione con più ingressi utilizzando Map? (Haskell)
Domanda
ragazzi G'day,
Cercando attualmente per finire un po 'di compiti a casa su cui sto lavorando, e avendo un problema in cui sto cercando di applicare mappa attraverso una funzione che accetta input multipli.
così nel caso sto usando processList f (x) =: XS mappa accelerateList f xs xs x
processList viene dato un valore fluttuante (f) e una lista che ordina in un altro elenco
Accelerate Elenco assume un valore fluttuante (f) un elenco e un oggetto List attraverso il quale restituisce un altro oggetto List
So che il mio Accelerate Lista codice è corretto, ma non posso per la vita di me ottenere la sintassi per questo codice di lavoro:
processList :: Float -> [Object] -> [Object]
accelerate f [] = []
accelerate f [x] = [(accelerateForce f x x)]
accelerate f (x:xs) = map accelerateList f xs x xs
Tutte le idee? Ho graffiare la mia testa per circa 3 ore ormai. Lo so che è qualcosa di davvero semplice.
Soluzione
Prima di voi probabilmente si desidera utilizzare alcuni parentesi:
map accelerateList f xs x xs
Il map
funzione prende esattamente due argomenti (non cinque), così si dovrebbe fare qualcosa di simile, per esempio:
map (accelerateList f xs x) xs
Ma d'altra parte, che non si adatta con le firme di funzione. Il problema è probabilmente che non hai strutturato la soluzione in un modo abbastanza buono. Potrebbe essere una questione a sé stante, ma spiegando che cosa si sta cercando di realizzare con la funzione di accelerazione-(o che mai uno è quello "top") sarebbe certamente di aiuto.