Map.lookup键入奇怪的行为

时间:2016-03-18 21:56:09

标签: haskell types

我一直在Haskell中使用Map.lookup而且我不断收到以下错误:

Couldn't match expected type `[Char]` with actual type `Maybe String`.

有没有一种快速简单的方法来转换它?

2 个答案:

答案 0 :(得分:1)

如果没有看到您的代码,就无法肯定地说出来,但很可能您已经在Map查找了一些内容,并期望获得String(与[Char])相同。实际上,lookup会返回Maybe String,因此如果请求的密钥不在Nothing中,则会返回Map

答案 1 :(得分:1)

您无法将require 'sinatra/base' “转换”为HelloWorldApp.run! if app_file == $0 ,除非您决定如何处理x :: Maybe StringString的情况 - 在您的情况下,找不到x中的元素。

尝试这样的事情:

Nothing

还有一个maybe功能可以在某些情况下提供更短的替代方案,但我建议先学习如何使用Map