Ho scavato in Haskell negli ultimi mesi, mi sono imbattuto in una situazione con monadi che Non sono abbastanza sicuro su come gestirlo.Haskell (a -> ma) -> m (a -> a) -> m (a -> a)
Ho un valore di tipo a -> m a
ed un secondo tipo di m (a -> a)
e devo comporli tale che il risultato del primo finisce come ingresso nella del secondo e produce un m (a -> a)
se possibile. Sono stato bloccato su questo per il giorno passato ora e non sto avvolgendo la mia mente intorno ad esso. Suppongo che sto cercando una funzione come (a -> m a) -> m (a -> a) -> m (a -> a)
. Posso fornire un esempio più concreto se ha più senso.
È possibile * ordinare * fare ciò che si chiede se si è disposti a eseguire le azioni monadiche associate a tutti i possibili valori di input 'a' in una volta in primo piano. Occasionalmente questo è quello che vuoi - ma di solito no. –