Je veux de sucre la notation suivante. Mais im pas sûr que je l'ai vu juste:de sucreing faire la notation
est:
quote = do
time <- qtime
qcomma
ask <- double
qcomma
bid <- double
qcomma
askVolume <- double
qcomma
bidVolume <- double
endOfLine
return $ Quote time ask bid askVolume bidVolume
Et
quote = Quote <$> (qtime <* qcomma)
<*> (double <* qcomma)
<*> (double <* qcomma)
<*> (double <* qcomma)
<*> (double <* endOfLine)
équivalent à:
qtime >>= (\time -> qcomma)
>> double
>>= (\ ask -> qcomma)
>> double
>>= (\bid -> qcomma)
>> double
>>= (\askVolume -> qcomma)
>> double
>>= (\bidVolume -> endOfLine)
return (Quote time ask bid askVolume bidVolume)
Toute aide est appréciée!
Il est impressionnant GHC serait «Applicative», mais pourquoi? il n'y a aucune garantie qu'il fonctionnera mieux, est-il? – MasterMastic
Les monades appliquent un ordre d'opérations non requis par le code 'Applicative', ce qui a des implications pour la parallélisation. Laisser le compilateur décider si une instance Applicative disponible est appropriée pour une expression 'do' libère le programmeur de commuter inutilement vers une monade. – chepner
ok beaucoup merci pour cela !! Ca a du sens!! – Devitect