Haskell流和catMaybes

Haskell流和catMaybes,haskell,Haskell,我试图用这里的代码解决这个问题。我花了3天时间学习Haskell的(%0.1)。这似乎是一种很好的语言,但仍然不存在:( 所以我的问题来了 sidecars <- catMaybes <$> forConcurrentlyN maxThreads jsons parseSidecar 我找不到一种使用调试的方法,而我以前使用的是.Net或PHP:(而且我花了一些时间来理解它的速记结构。自从你发布后,库已经更新为使用或者而不是或者。我将使用你看到的 在原始源代码中,您有以下

我试图用这里的代码解决这个问题。我花了3天时间学习Haskell的(%0.1)。这似乎是一种很好的语言,但仍然不存在:(

所以我的问题来了

  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