Penso di capire come funzionano i functor applicativi in Haskell e li sto usando per i tipi di dati di base (Forse, O ...). Tuttavia, ho trovato this question con il seguente esempio:Quale funtore applicativo viene utilizzato per passare parametri condivisi?
withPool pool = bracket (takeConn pool) (putConn pool)
può essere riscritta in stile applicativa:
withPool = bracket <$> takeConn <*> putConn
mi ha sorpreso è stato compilato e in effetti funziona come previsto, ma potrebbe qualcuno mi che applicativo dire Per questo viene utilizzato Functor e come viene definito?
Aggiornamento: Penso di aver capito come funziona, ma non ho idea di dove sia definito.
Per quello che vale, questo è in realtà il lettore monade, meno un wrapper 'newtype' - il" parametro condiviso "qui è lo stesso di" ambiente "per' Reader'. In modo simile, "err" è l'errore monade e "(,) w' è scrittore. –
@ C.A.McCann Vale la pena segnalarlo, e mi sono dimenticato di farlo. Grazie per averlo aggiunto. – Carl