Я создаю поток значений Just
с использованием библиотеки streaming
, но у меня возникла проблема с преобразованием потока с помощью простой функции.
Может ли кто-нибудь указать мне правильное направлениездесь?
#!/usr/bin/env stack
import Streaming
import qualified Streaming.Prelude as S
import Data.Maybe
stream :: Stream (Of (Maybe Integer)) Maybe ()
stream = S.each [Just 1, Just 2, Just 3, Just 4, Just 5]
main :: IO ()
main = do
print $ S.mapM (\x -> isJust x) stream
print "done"
Это ошибка, которую я получаю:
test.hs:13:25: error:
• Couldn't match expected type ‘Maybe b0’ with actual type ‘Bool’
• In the expression: isJust x
In the first argument of ‘S.mapM’, namely ‘(\ x -> isJust x)’
In the second argument of ‘($)’, namely
‘S.mapM (\ x -> isJust x) stream’
|
13 | print $ S.mapM (\x -> isJust x) stream
| ^^^^^^^^