Я реализую функцию myFunction
, которая использует anotherFunction
.
anotherFunction
- внешняя функция, которую нельзя изменить. Возвращает значение типа Maybe
.
myFunction
- это рекурсивная функция, которая проверяет, является ли значение, возвращаемое другим myFunction
, значением Just
или Nothing
. Если это Nothing
, тогда верните Nothing
, в противном случае он будет использовать чистое значение, возвращаемое myFunction
в качестве аргумента anotherFunction
.
В основном примерно так:
--These cannot be modified
data A = B | F a
anotherFunction :: x -> Maybe x
--Something here
myFunction :: A -> Maybe x
--These can be modified
myFunction (F a) = {- if (myFunction a == Nothing)
then Nothing
else anotherFunction (pure value of (myFunction a)) -}
Как этого добиться?