haskell - 如何在haskell中做到这一点?[x^0,x^1,x^2,x^3 ...]
问题描述
我想要一份像这样的清单
[x^0,x^1,x^2,x^3 ...]
有没有可能有这样的清单
例如
ex : x = 2 [1,2,4,8,16,32 ..]
解决方案
您可以多次使用iterate
或将数字加倍。unfoldr
这可能比计算x^n
每个n
.
下面,我使用x=2
,但您可以使用任何x
.
> take 10 $ iterate (*2) 1
[1,2,4,8,16,32,64,128,256,512]
> take 10 $ unfoldr (\x -> Just (x,2*x)) 1
[1,2,4,8,16,32,64,128,256,512]
还要注意有界整数类型,例如Int
会以这种方式快速溢出。
推荐阅读
- python - 循环后小数消失
- angular - Angular *ngFor 由一个单一的结构指令组成?还是两个?
- python - 如何定期在 Player 和 Model 操纵杆输入之间切换?
- sql - SQL 加入 2 行并与 GROUP BY 求和
- visual-studio-code - VSCode Extension - How to refer to workspace settings' configuration in "when" clause of contributes.menus
- service - 网站使用端口 TCP 32767 和端口 TCP 32768
- c - 从右到左从整数中减去数字
- javascript - 如何仅在文档 Firestore 中显示具有相同 uid 的用户
- mysql - 从mysql中的同一个表复制行但改变某些列
- html - 如何在对象中放置 HTML 标签?