我正在尝试解决以下练习(我正在学习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中实现教会数字.这是我的代码:
-- 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)