Cerco un modo idiomatico di fareApplicare una funzione solo se isJust
moveMaybeCreature Nothing world = world
moveMaybeCreature (Just creature) world = moveCreature creature world
O in altre parole
if isJust c
then doSomething (fromJust c) w
else w
ho pensato che potevo a questo modo:
moveMaybeCreature c w = foldr moveCreature w (maybeToList c)
Posso farlo senza dover convertire Maybe Creature
a [Creature]
?
Questa è la prima funzione descritta nel documento per Data. Forse, e in qualche modo l'ho persa. Grazie! – Niriel
Come nota a margine, c'è anche l'equivalente per 'Either':' o' in 'Data.Either'. – David
La tua precondizione sui tipi è praticamente garantita se 'moveMaybeCreature' ha un controllo di tipo in primo luogo ... –