从字符串中解析纬度和经度对

Parsing a latitude & longitude pair from a string

我有一个包含 latitude/longitude 对的字符串:

"50.0814253N, 14.4876106E"

我想把它解析成Maybe (Float, Float)。我可以很容易地得到 [Just 50.0814253, Just 14.4876106] 或类似的东西,但是得到最后的 Maybe (Float, Float) 是相当混乱的。从 List (Maybe Float)Maybe (Float, Float) 有什么好的方法吗?

如果您已经有 [Just 50.0814253, Just 14.4876106] 并且想要 Maybe (Float, Float),您可以使用 case ... of 的简单模式匹配:

let list = [Just 50.0814253, Just 14.4876106]
in
case list of
  [Just a, Just b] ->
    Just (a, b)
  _ ->
    None