【发布时间】:2019-11-29 02:27:55
【问题描述】:
我是 Haskell 编程的初学者,我得到了一项任务来创建一个函数,该函数检查给定字符串是否是另一个字符串的子字符串,如果是,则返回子字符串在主字符串中的位置。这是我目前所拥有的:
findString :: String -> String -> Integer
findString mainstring substring
| length substring > length mainstring = (-1)
| take (length substring) mainstring == substring = 0
| otherwise = 1 + findString (drop 1 mainstring) substring
此分配的说明明确指出我必须使用findString :: String -> String -> Integer,并且如果子字符串不是主字符串的子字符串,它应该返回(-1)。现在函数的递归部分通过在每次递归中添加+1 来干扰| length substring > length mainstring = (-1) 的结果,但我只想要一个静态(-1)。我觉得我在这里很近,但我已经坚持了很长一段时间了。任何帮助将不胜感激!
【问题讨论】: