L'altro giorno mi sono imbattuto in un operatore, -<
, che appare nel contesto del collegamento di un valore a una variabile in una monade; in particolare, sembra che questo passi un valore a una funzione che viene quindi assegnata (e possibilmente valutata?) a una variabile esistente nell'ambito di una monade.Che diamine è "- <", comunque?
Esempio utilizzo:
myMonad = do
myVar <- f -< x
Alcune domande su questo: Prima di tutto, come si chiama? L'operatore stesso non è googabile (a Google non piace <
o >
) e l'unico nome che ho trovato, "arrow application", in genere collega a the other kind of Arrow
present in Haskell, che sembra non correlato.
In secondo luogo, perché questo operatore non è spiegato nella maggior parte delle risorse di apprendimento disponibili? Né la "Gentle Introduction to Monads" né la LYAH gli danno una menzione passeggera, e anche la maggior parte degli elenchi di operatori Haskell lo rinunciano. (È considerato una cattiva pratica?)
Infine, questo è equivalente all'utilizzo di parentesi, come in, (myVar <- f -< x) == (myVar <- (f x))
? O è più come usare let myVar = (f x)
? In entrambi i casi, se questo è il modo in cui viene utilizzato, perché utilizzare -<
su Paren o $
?
durante la ricerca di simboli, [hoogle] (https://www.haskell.org/hoogle/?hoogle=-%3C) e [hayoo] (http://hayoo.fh-wedel.de/?query = -% 3C) sono i tuoi amici. – rampion