求汉明数
打印头 1000 个汉明数(以2、3、5 的阶乘为因子的正整数)
main = print (take 1000 hamming)
hamming = 1 : map (2*) hamming ~~ map (3*) hamming ~~ map (5*) hamming
where
xxs@(x:xs) ~~ yys@(y:ys) -- To merge two streams:
| x==y = (x : xs~~ys) -- if the heads are common, take that
| otherwise = (y : xxs~~ys) -- and proceed to merge the rest
xxs@(x:xs)表示什么?
BTW, 如何将[(1,2,3),(4,5,6), ...., ]中的数据存入文件啊?
[ 本帖最后由 sw2wolf 于 2009-4-28 11:02 编辑 ]
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(9)
这个帖子中也是错的
http://hi.baidu.com/%D9%A4%C2%EB/blog/item/720bda43b48bc91772f05d06.html
(我今天查啥叫汉明数的时候搜的)
win_hate 版主数学真好,羡慕ing
一个成员一个成员的输出,或者重新定义 list 的 show
lz 的代码有问题,应该改为:
复制代码
谢谢! 另外只保存list的内容有什么简单方法吗?
red = [1,2,3,4,5]
bracket (openFile "abc.txt" WriteMode) (hClose)
(hd1 -> hPutStrLn hd1 $ show (red ))
则文件内容是
[1,2,3,4,5]
如何整体保存成 1 2 3 4 5呢? (不用一个元素一个元素地存)
[ 本帖最后由 sw2wolf 于 2009-4-28 13:14 编辑 ]
这句话是错的,汉明数的定义是 以 2, 3, 5 的方幂为因子的正整数,也即 汉明数的质因子只有 2, 3, 5
就是将 x:xs 作为整体绑定到 xxs
[ 本帖最后由 MMMIX 于 2009-4-28 12:09 编辑 ]
如果还是不太清楚:
可以给你一个例子,你就知道 x, xs, xss 分别绑定的值了
复制代码
run
复制代码
[ 本帖最后由 izhier 于 2009-4-28 11:16 编辑 ]
你可以到:http://bbs2.chinaunix.net/thread-1427365-1-1.html
帖子中的
7. Patterns(模式)
看一下