top | item 24319140 (no title) raiflip | 5 years ago What if you need to access 5 resources in a row, any of which can throw exceptions? A monad centralizes the repeated logic in its flatMap function. discuss order hn newest edflsafoiewq|5 years ago I think the comparison is to something like this try: user = getUser() profile = getProfile(user) pic = getProfilePicture(profile) thumb = getThumbnail(pic) return thumb except Missing: return None raiflip|5 years ago That example seems a bit odd as a design. You’re throwing an exception to represent a no result, but suppressing it to convert the exception to a none. Monads give you the convenience while being consistent. load replies (1)
edflsafoiewq|5 years ago I think the comparison is to something like this try: user = getUser() profile = getProfile(user) pic = getProfilePicture(profile) thumb = getThumbnail(pic) return thumb except Missing: return None raiflip|5 years ago That example seems a bit odd as a design. You’re throwing an exception to represent a no result, but suppressing it to convert the exception to a none. Monads give you the convenience while being consistent. load replies (1)
raiflip|5 years ago That example seems a bit odd as a design. You’re throwing an exception to represent a no result, but suppressing it to convert the exception to a none. Monads give you the convenience while being consistent. load replies (1)
edflsafoiewq|5 years ago
raiflip|5 years ago