无心人
发表于 2009-2-26 10:05:40
上面的函数,在大于等于10时多1
实际用要减1
mathe
发表于 2009-2-26 10:14:25
原帖由 无心人 于 2009-2-26 09:58 发表 http://bbs.emath.ac.cn/images/common/back.gif
Haskell
:m + List Char
Prelude List Char> let prodd n = product \$ map (\x -> (ord x) - (ord '0')) \$ filter (/='0') \$ sort \$ show (n)
Prelude List Char> prodd 12
2
Prelude List Char> prodd 1 ...
这里\$相当于.的作用吗?这里这个sort是怎么用的?
还有ord函数我好像也不能用,是不是要import Char?
我也写一个:
let prodd n = foldr1 (*)
mathe
发表于 2009-2-26 10:15:36
HasKell里面有没有提供判断素数的函数?
无心人
发表于 2009-2-26 10:17:55
有外部库
无心人
发表于 2009-2-26 10:19:10
http://haskell.5d6d.com/thread-28-1-1.html
无心人
发表于 2009-2-26 10:19:34
ord在Char里
无心人
发表于 2009-2-26 10:21:09
\$和.不一样啊
.是函数复合,是高阶函数
\$属于输入, 右面的数据输出输入到左面的输入
无心人
发表于 2009-2-26 10:21:50
最新的结果我在4#里写出来了
算到了8
无心人
发表于 2009-2-26 10:27:07
sort list等于排序
这个函数不用也可以
无心人
发表于 2009-2-26 10:28:32
按你的思路是
let prodd n = product [ ord(c) - ord('0') | c <- show n, c /= '0'];
页:
1
[2]
3
4
5
6
7
8
9
10
11