Haskell流和catMaybes
我试图用这里的代码解决这个问题。我花了3天时间学习Haskell的(%0.1)。这似乎是一种很好的语言,但仍然不存在:( 所以我的问题来了Haskell流和catMaybes,haskell,Haskell,我试图用这里的代码解决这个问题。我花了3天时间学习Haskell的(%0.1)。这似乎是一种很好的语言,但仍然不存在:( 所以我的问题来了 sidecars <- catMaybes <$> forConcurrentlyN maxThreads jsons parseSidecar 我找不到一种使用调试的方法,而我以前使用的是.Net或PHP:(而且我花了一些时间来理解它的速记结构。自从你发布后,库已经更新为使用或者而不是或者。我将使用你看到的 在原始源代码中,您有以下
sidecars <- catMaybes <$> forConcurrentlyN maxThreads jsons parseSidecar
我找不到一种使用调试的方法,而我以前使用的是.Net或PHP:(而且我花了一些时间来理解它的速记结构。自从你发布后,库已经更新为使用
或者而不是或者。我将使用你看到的
在原始源代码中,您有以下代码:
sidecars它fmap
为concurrentlyn maxThreads jsons parseSidecar
设置,这很可能意味着它将同时对jsons
的元素执行parseSidecar
,并返回m[可能是a]
类型的内容,通过fmapping,我们得到了m[a]
,这样我们只需要包装的文件就可以了。非常感谢!有什么方法可以转储操作吗?我可以打印json
s及其路径,如photo\u 6116269424。json
和parseSidecar
返回每个json文件的字符串内容:)当我打印sidecar
时,它从来没有得到只是,我得到[]
,这就是为什么我一直关注这篇文章来排序问题。你可以使用它进行调试。这里的所有内容都已经在IO
中,你可以使用print
(或处理MonadIO m=>m
时使用liftIO print
)。不要弄乱traceShow
,如果你还没有一个好的懒惰评估的心理模型,你只会感到困惑。
parseSidecar :: MonadIO m => FilePath -> m (Maybe PhotoMeta)
parseSidecar jf = do
res <- liftIO $ P.readFile $ encodeString jf
return $ decode $ fromStrict res