我正在按照GitHub 文档中有关如何将现有项目添加到 GitHub 的说明进行操作。但是,当我尝试按照指示在项目根目录中'gh' is not recognized as an internal or external command, operable program or batch file.使用命令时,收到错误消息。gh repo create fs1这fs1是我的项目名称。我浏览了 StackOverflow 但尚未找到任何帮助。我缺少什么?
我正在尝试使用 foldr 和辅助函数将列表中的所有最大整数提取到另一个列表。我对 foldr 的理解与错误消息相冲突。这是我的代码:
largest :: [Int] -> [Int]
largest [] = []
largest xs = foldr largestHelper [] xs
largestHelper :: [Int] -> Int -> [Int]
largestHelper [] prev = [prev]
largestHelper (lrg : lrgs) prev | lrg < prev = [prev]
| lrg == prev = prev : (lrg : lrgs)
| otherwise = (lrg : lrgs)
Run Code Online (Sandbox Code Playgroud)
在我看来,要评估的第一个函数是largestHelper整数列表的最后一个元素,而[]. 接下来是largestHelper使用列表的倒数第二个元素和前一个迭代,它只是最后一个元素,因为它是迄今为止最大的。等等。所以最后largest xs已经评估为一个列表,其中包含一个或多个整数,其中从给定列表中找到最大值。
以下是错误:
largest.hs:3:20: error:
* Couldn't match type `[Int]' with …Run Code Online (Sandbox Code Playgroud) 我有一个函数,它返回从输入列表中找到的半个回文列表。如果我在一行上使用 if 语句但我想使用守卫,它会起作用。守卫给我一个解析错误。我阅读了很多给出这种错误的案例,但我没有弄清楚我的案例。这是代码:
palindromeHalfs :: [String] -> [String]
palindromeHalfs xs = map firstHalf (filter palindrome xs)
where
firstHalf :: String -> String
firstHalf ys | (length ys) `rem` 2 == 0 = take ((div (length ys 2)) ys
| otherwise = take ((div (length ys 2) + 1) ys
palindrome :: String -> Bool
palindrome str | str == reverse str = True
| otherwise = False
Run Code Online (Sandbox Code Playgroud)
和错误:
palindromeHalfs.hs:6:20: error: parse error on input `otherwise'
|
6 | | otherwise …Run Code Online (Sandbox Code Playgroud)