小编Cat*_*yLu的帖子

如何在C中暂停?

我是C的初学者.我运行C程序,但窗口关闭得太快才能看到任何东西.我怎么能暂停窗户?

c

18
推荐指数
4
解决办法
14万
查看次数

计算Haskell中的列表累积和

编写一个返回列表运行总和的函数.例如,[1,2,3,5]是[1,3,6,11].我在下面编写这个函数,它可以返回列表中所有值的最终总和.那我怎么能逐个分开呢?

sumlist' xx=aux xx 0
    where aux [] a=a
          aux (x:xs) a=aux xs (a+x)
Run Code Online (Sandbox Code Playgroud)

haskell

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

Haskell中的zipWith函数

ghci> zipWith' (zipWith' (*)) [[1,2,3],[3,5,6],[2,3,4]] [[3,2,2],[3,4,5],[5,4,3]]
Run Code Online (Sandbox Code Playgroud)

函数zipWith'使用函数'*'和它之后的参数得到返回.但在这种情况下,函数zipWith如何得到结果[[3,4,6],[9,20,30],[ [10,12,12]].

使用zipWith'的代码示例是从免费在线书籍Learn You a Haskell for Great Good中逐字逐句获取的.

haskell

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

uncurry函数的类型签名

uncurry f=\(a,b)->f a b
Run Code Online (Sandbox Code Playgroud)

uncurry将curried函数转换为对上的函数,但上面的函数只是将它转换为curried函数f a b.这与uncurry函数的定义是否相矛盾?

haskell

5
推荐指数
3
解决办法
3890
查看次数

使用递归或更高阶函数编写函数

如何编写一个带谓词f和列表的函数,xx如果fx对某些人来说是真的,那么它会重新出现x?xs吗?

例如:

 ghci>exists (>2) [1,2,3]
     True
Run Code Online (Sandbox Code Playgroud)

这是我写的功能:

 exists :: (t->Bool)->[t]->Bool
    exists f a []=error
    exists f a (x:xs)
                |if x?f a  =True
                |otherwise= x:f a xs
Run Code Online (Sandbox Code Playgroud)

我知道这不对,但我不知道为什么.我是否需要先编写此谓词函数f,然后在函数内部使用它exists.因为我真的不知道如何比较列表的一个元素和xs函数.

haskell

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

高阶函数(不连续,咖喱)

我正在使用这些功能:

cplus a b = a+b   

ucplus(a, b) = a+b
Run Code Online (Sandbox Code Playgroud)

......做这个实验:

uncurry cplus=\(a, b) -> cplus a b  
Run Code Online (Sandbox Code Playgroud)

(a,b)是函数的参数cplus,所以方程的右边实际上是在执行函数cplus a b.

为什么uncurry cplus等于等式的右边?

haskell

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

标签 统计

haskell ×5

c ×1