Sto osservando le funzioni di gestione che restituiscono promesse con le funzioni Ramda diverse da pipeP. Sto cercando di confrontare le funzioni (una delle quali restituisce una promessa) con eguali in questo modo:Gestione della programmazione asincrona con Ramda
getSectionFromDb :: obj -> promise
getSectionFromData :: obj -> number
R.equals(
getSectionFromDb,
getSectionFromData
)
Ci sono due fattori in gioco qui. First R.equals non valuterà le funzioni, ma il problema più grande è che sto confrontando una promessa a un numero.
C'è un modo funzionale per fare questo genere di cose (so che le funzioni non sono referenziali trasparenti, ma ci deve essere un modo di trattare con io)? C'è un modo per farlo Ramda?
Grazie.
Sembra come se si volesse "elevare" la funzione "uguale" - prima nella promessa monade e poi nella funzione applicativa; sfortunatamente Ramda può solo sollevare liste. – Bergi
Quindi vuoi una funzione '??? :: (obj -> Promessa) -> (oggetto -> numero) -> (oggetto -> Promessa ) '? –
Bergi
@Bergi: la documentazione di Ramda non è del tutto soddisfacente, ma 'lift' ** [funziona su arbitrari' Functional Functional'] (https://github.com/ramda/ramda/blob/master/test/liftN js # L42-L45) **. –