我一直在Haskell中使用Map.lookup而且我不断收到以下错误:
Couldn't match expected type `[Char]` with actual type `Maybe String`.
有没有一种快速简单的方法来转换它?
答案 0 :(得分:1)
如果没有看到您的代码,就无法肯定地说出来,但很可能您已经在Map
查找了一些内容,并期望获得String
(与[Char]
)相同。实际上,lookup
会返回Maybe String
,因此如果请求的密钥不在Nothing
中,则会返回Map
。
答案 1 :(得分:1)
您无法将require 'sinatra/base'
“转换”为HelloWorldApp.run! if app_file == $0
,除非您决定如何处理x :: Maybe String
为String
的情况 - 在您的情况下,找不到x
中的元素。
尝试这样的事情:
Nothing
还有一个maybe功能可以在某些情况下提供更短的替代方案,但我建议先学习如何使用Map
。