That's not fine and idiomatic in any language I know.
This would be:
function getDisplayPictureFromId(id) {
return getUser(id)?.profile?.displayPicture
}
If the language does not have the null-safe operator '?.' you just write it:
function nullSafe(obj, callback) {
if (obj) {
return callback(obj)
}
return null
}
function getDisplayPictureFromId(id) {
return nullSafe(getUser(id),
(user) => nullSafe(user.profile,
(profile) => profile.displayPicture)
))
}
Not as nice in this case, but with a few similar functions for composing other functions, you achieve similar benefits to Monads without having the complexity of higher-kinded types.
This would be:
If the language does not have the null-safe operator '?.' you just write it: Not as nice in this case, but with a few similar functions for composing other functions, you achieve similar benefits to Monads without having the complexity of higher-kinded types.