小编use*_*833的帖子

在haskell中实现解压缩功能

我正在尝试实现解压缩功能,我做了以下代码但是我收到了错误.

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

5
推荐指数
2
解决办法
6701
查看次数

改进我所有函数的Haskell代码

我试图在Haskell中实现所有函数,它工作正常,但我认为我的基本情况并不好,如果我将基本情况的结果设置为False它更有意义,我的意思是不是空列表成员通过真实单词中的测试条件,所以答案应该是假的,但另一方面,如果我将其定义为false,则整个函数不能正常工作.

all' test [] = True 
all' test (x:xs)
    | not (test x) = False
    | otherwise = all' test xs
Run Code Online (Sandbox Code Playgroud)

haskell predicate list

2
推荐指数
2
解决办法
1021
查看次数

试图实现在Prolog中获取列表的第n个元素

我是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必须用其他东西替换,但我想不出任何东西.

prolog

2
推荐指数
1
解决办法
7640
查看次数

改进我的Haskell monads代码

我正在使用Haskell和monad,但我有点困惑他们这里是我的代码但我收到错误,我不知道如何改进我的代码.

doAdd :: Int -> Int -> Maybe Int    
doAdd x y = do 
result <- x + y
return result
Run Code Online (Sandbox Code Playgroud)

monads haskell

1
推荐指数
1
解决办法
152
查看次数

标签 统计

haskell ×3

list ×1

monads ×1

predicate ×1

prolog ×1