【发布时间】:2018-08-10 14:16:08
【问题描述】:
我刚刚开始学习 Haskell,我真的有很多关于它的问题。在我正在做的教程中,我需要开发一个功能,在其中从列表和某个字符串中,您将找到字符串在列表中的位置。网上搜索找到了这段代码,但实在看不懂,谁能给我解释一下。
lookUp :: [String] -> String -> Int
lookUp [] s = error "String no encontrado"
lookUp (x:xs) s | not(x == s) = 1 + (lookUp xs s)
| otherwise = 0
【问题讨论】:
-
这看起来是一种相当丑陋的解决方法:使用否定逻辑,
errors, ... :( -
请提出具体问题。如果这段代码的每一部分对你来说都没有意义,那么这个问题对于 StackOverflow 来说可能太宽泛了。
-
如果写成
lookup (x:xs) s = if x == s then 0 else (1 + lookup xs s)你会理解得更好吗? -
你能具体说明你不了解的地方吗?语法、类型、递归、模式匹配?
-
对不起,如果我没有进一步详细说明,就像下面那样,我正在寻找有人详细说明代码的每个部分。