找回密码
 欢迎注册
楼主: medie2005

[讨论] 数字乘积

[复制链接]
发表于 2009-2-26 10:05:40 | 显示全部楼层
上面的函数,在大于等于10时多1
实际用要减1
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2009-2-26 10:14:25 | 显示全部楼层
原帖由 无心人 于 2009-2-26 09:58 发表
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 (*) [fromEnum c - fromEnum '0' | c<-show(n), c/='0']
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2009-2-26 10:15:36 | 显示全部楼层
HasKell里面有没有提供判断素数的函数?
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2009-2-26 10:17:55 | 显示全部楼层
有外部库
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2009-2-26 10:19:10 | 显示全部楼层
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 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'];
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
您需要登录后才可以回帖 登录 | 欢迎注册

本版积分规则

小黑屋|手机版|数学研发网 ( 苏ICP备07505100号 )

GMT+8, 2024-4-20 16:30 , Processed in 0.045672 second(s), 15 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表