我正在尝试实现解压缩功能,我做了以下代码但是我收到了错误.
myUnzip [] =()
myUnzip ((a,b):xs) = a:fst (myUnzip xs) b:snd (myUnzip xs)
Run Code Online (Sandbox Code Playgroud)
我知道问题出在第二行的右侧,但我确实知道如何改进它.任何提示请.
我得到的错误是
ex1.hs:190:22:
Couldn't match expected type `()' with actual type `[a0]'
In the expression: a : fst (myUnzip xs) b : snd (myUnzip xs)
In an equation for `myUnzip':
myUnzip ((a, b) : xs) = a : fst (myUnzip xs) b : snd (myUnzip xs)
ex1.hs:190:29:
Couldn't match expected type `(t0 -> a0, b0)' with actual type `()'
In the return type of a call of …Run Code Online (Sandbox Code Playgroud) 我试图在Haskell中实现所有函数,它工作正常,但我认为我的基本情况并不好,如果我将基本情况的结果设置为False它更有意义,我的意思是不是空列表成员通过真实单词中的测试条件,所以答案应该是假的,但另一方面,如果我将其定义为false,则整个函数不能正常工作.
all' test [] = True
all' test (x:xs)
| not (test x) = False
| otherwise = all' test xs
Run Code Online (Sandbox Code Playgroud) 我是Prolog中的新手并试图在Prolog中实现获取列表的第n个元素是我的代码但是它会抛出错误
element_at(X,[X|_],1).
element_at(X,[_|L],K) :-
K > 1,
K1 is K - 1,
element_at(X,L,K1).
Run Code Online (Sandbox Code Playgroud)
我认为代码右侧第二行的X必须用其他东西替换,但我想不出任何东西.
我正在使用Haskell和monad,但我有点困惑他们这里是我的代码但我收到错误,我不知道如何改进我的代码.
doAdd :: Int -> Int -> Maybe Int
doAdd x y = do
result <- x + y
return result
Run Code Online (Sandbox Code Playgroud)