【问题标题】:Not in scope: `fromMaybe' - haskell不在范围内:`fromMaybe' - haskell
【发布时间】:2015-09-18 10:12:17
【问题描述】:

我有一个字符串和一个字符串列表 lst,如果 lst 不包含给定的字符串,或者只是 list' where list' 与 lst 相同,我不应该返回任何内容,除了给定字符串的第一个出现的被删除。

allExcept :: [Char] -> [[Char]] -> Maybe [[Char]]

allExcept ch1 chars 
   | ch1  `notElem` chars = Nothing

allExcept ch [] = []      
allExcept ch (x:xs)
  | ch /= x = Just(x:(fromJust(allExcept ch xs)))
  | otherwise = Just(xs)  

我的代码的结果是: 不在范围内:`fromMaybe'

【问题讨论】:

  • 使用String 类型别名而不是[Char]。我也怀疑第二个模式匹配是多余的。
  • 请注意fromMaybe 很好,但fromJust 是危险的,因为它是部分的:如果它曾经应用于Nothing,它会导致您的程序崩溃。

标签: haskell maybe


【解决方案1】:

您需要导入 Data.Maybe 模块:

import Data.Maybe

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-27
    • 1970-01-01
    • 2020-11-14
    • 1970-01-01
    • 1970-01-01
    • 2021-01-05
    相关资源
    最近更新 更多