小编aco*_*ell的帖子

使用列表理解的指数化

我正在尝试解决以下练习(我正在学习Haskell):

使用列表推导定义x ^ n.

我正在努力寻找解决方案.

使用递归或折叠,解决方案并不复杂(例如,foldr (*) 1 [x | c <- [1..n]]).但是,仅使用列表理解会变得困难(至少对我而言).

为了解决这个问题,我正在尝试创建一个x ^ n元素列表然后获取长度.生成x*n元素列表很容易,但是我无法生成x ^ n元素列表.

ppower x n = length [1 | p <- [1..x], c <- [1..n]]
Run Code Online (Sandbox Code Playgroud)

返回给出错误结果的x*n元素列表.任何有关这方面的想法将不胜感激.

haskell functional-programming

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

使用Church数字键入某些操作的签名声明

我试图在Haskell中实现教会数字.这是我的代码:

-- Church numerals in Haskell.
type Numeral a = (a -> a) -> (a -> a)

churchSucc :: Numeral a -> Numeral a
churchSucc n f = \x -> f (n f x)

-- Operations with Church numerals.
sum :: Numeral a -> Numeral a -> Numeral a
sum m n = m . churchSucc n

mult :: Numeral a -> Numeral a -> Numeral a
mult n m = n . m

-- Here comes the first problem …
Run Code Online (Sandbox Code Playgroud)

haskell church-encoding

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