免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 4783 | 回复: 3
打印 上一主题 下一主题

[haskell]这是什么写法?zipWith生成list [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2013-03-07 15:31 |只看该作者 |倒序浏览

生成fibonacci值列表
genfibo = [x | x <- takeWhile (<= 100000000) fibs]
        where
                fibs = 1 : 1 : zipWith (+) fibs (tail fibs)

zipWith也能看懂,就是看不懂
fibs = 1 : 1 : xxx

我改成fibs = 1 : 1 : 2 : 3 : 5 : xxx都可以。

1:1代表list的初始元素?这是什么语法,在**介绍。。。

论坛徽章:
7
巳蛇
日期:2014-04-10 08:54:57白羊座
日期:2014-04-22 20:06:262015年亚洲杯之沙特阿拉伯
日期:2015-02-10 14:18:532015年辞旧岁徽章
日期:2015-03-03 16:54:152015亚冠之吉达阿赫利
日期:2015-06-02 11:34:112015亚冠之武里南联
日期:2015-06-24 12:13:082015亚冠之阿尔纳斯尔
日期:2015-08-03 09:08:25
2 [报告]
发表于 2013-03-08 08:55 |只看该作者
本帖最后由 Monox 于 2013-03-08 08:56 编辑
李营长 发表于 2013-03-07 15:31
生成fibonacci值列表
genfibo = [x | x <- takeWhile (<= 100000000) fibs]
        where
                fibs = 1 : 1 : zipWith (+) fibs (tail fibs)

zipWith也能看懂,就是看不懂
fibs = 1 : 1 : xxx

我改成fibs = 1 : 1 : 2 : 3 : 5 : xxx都可以。

1:1代表list的初始元素?这是什么语法,在**介绍。。。


: 是 List 构造函数,表示把一个元素加入一个 List 的开头,所以
  1. 1 : 1 : 2 :3 : 5 : xxx= [1, 1, 2, 3, 5] ++ xxx
复制代码

论坛徽章:
0
3 [报告]
发表于 2013-03-12 01:05 |只看该作者
李营长 发表于 2013-03-07 15:31
生成fibonacci值列表
genfibo = [x | x
  1. ':' 是一个syntactic sugar,相当于Lisp的cons。
  2. 你可以在ghci中 'a' : 'b' : [] == ['a' , 'b' , 'c'] 看看。
复制代码

论坛徽章:
0
4 [报告]
发表于 2013-03-13 15:00 |只看该作者
谢了,看到了
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP