Я склоняюсь scala и теперь я хочу понять, как использовать for-comprensions для композиции функций. Вот функция, которую я должен реализовать, не меняя свою подпись. И я почти закончил, но я не знаю, как с этим справиться. Не могли бы вы сказать мне, пожалуйста, как изменить это, чтобы получить надлежащую обработку None? Или, может быть, я совершенно не прав, и для понимания используются другие способы составления функций в scala? Спасибо.
def testForComprehension[A, B, C, D](f: A => Option[B])
(g: B => Option[C])
(h: C => D): Option[A] => Option[D] = for { first <- _
second = f(first).get
third = g(second).get } yield h(third)