我不明白,这个负数如何捕获?
mdrop 0 [] = []
mdrop 0 (h:t) = h:t
mdrop n [] = []
mdrop n (h:t) = mdrop (n-1) t
Run Code Online (Sandbox Code Playgroud)
如果我的输入看起来像这样mdrop (-3) [1, 2, 3, 4, 5, 7, 88, 6]
我收到一个空列表.但我不明白在哪一行捕获负数.
如何用Haskell解决这个数学函数?谁能帮我?
myFunc n m = myFuncRec n m if m <= n then 1
else myFuncRec n(m - 1):[]
Run Code Online (Sandbox Code Playgroud)
我需要两次递归吗?因为这个问题在java中需要两三个循环.
我写了一个函数,它计算加泰罗尼亚数字,但它不编译.我收到此错误消息:
• Occurs check: cannot construct the infinite type: t ~ t -> t Relevant bindings include catalanNum :: t (bound at CatNum.hs:1:1)
这是我的代码:
catalanNum 0 = 1
catalanNum n = div(2 *(catalanNum * (n-1)) * (2 * (n-1) + 1))(n + 1)
Run Code Online (Sandbox Code Playgroud)
如何消除此错误?
我在Haskell中编写了一个非常简单的程序,它接受两个列表并合并.但我不明白如何在Haskell中定义Module.
希尔是我的代码
module Merge(Merge (empty, list)merge) where ....
merge::[a] -> [a] -> [a]
merge xs [] = xs
merge [] ys = ys
merge (x:xs) (y:ys) = x:y:(merge xs ys)
Run Code Online (Sandbox Code Playgroud)
我不知道,在"哪里"写之后我该怎么做.只有列表操作,例如头尾等或?
谁能帮我?