【发布时间】:2023-02-07 01:28:57
【问题描述】:
生成函数
generateExponents k l,对于给定的 k 和 l,它会按递增顺序生成所有唯一可能数字x^k*y^l的流。例如generateExponents 2 3 = [1,4,8,9,16,25,27...]出于明显的原因,这不起作用:
generateExponents k l = sort [x^k*y^l | x <- [1..], y <- [1..]]然后我试了这个,这也不起作用:
generateExponents k l = [n | n <- [1 ..], n `elem` products n] where xs n = takeWhile (\x -> x ^ k <= n) [1 ..] ys n = takeWhile (\y -> y ^ l <= n) [1 ..] products n = liftA2 (*) (xs n) (ys n)我究竟做错了什么?
【问题讨论】: