找回密码
 欢迎注册
楼主: 无心人

[分享] Haskell自我娱乐帖

[复制链接]
 楼主| 发表于 2008-11-21 21:34:45 | 显示全部楼层
今天写程序 算串珠素数 稍微优化点 出现了类型推定问题 后来问别人知道 四则运算两边必须是相同类型 加上了toInteger类型转换后搞定
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2008-11-25 16:43:02 | 显示全部楼层
针对 k-smith Number的 haskell求整数数位和的优化 假设做个表,存储4位数字的数位和 digitsSum n = if (n == 0) then 0 else ((n \`mod\` 10) + digitsSum (n \`div\` 10)) let sd = listArray (0,9999) \$ map digitsSum [0..9999] 然后 sd!n就可得到n的数位和(n必须为 0..9999范围)
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2009-1-10 15:58:50 | 显示全部楼层
匿名函数 Prelude Primes> (\x y -> x + y) ((\x -> x + 1) 0) ((\x -> x - 1) 0) 0
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2009-1-13 21:29:08 | 显示全部楼层
似乎容易入门,想学精,难。
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2009-1-14 09:27:37 | 显示全部楼层
正确 但这个很容易验证数学问题
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2009-1-17 14:00:40 | 显示全部楼层
组合 combination :: [a] -> [[a]] combination [] = [[]] combination (x:xs) = (map ([x] ++ ) (combination xs) )++ (combination xs) 排列 permutation :: Eq a => [a] -> [[a]] permutation [] = [[]] permutation xs = concatMap (\x -> map (x:) \$ permutation (delete x xs)) xs
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2010-3-23 13:26:37 | 显示全部楼层
Haskell 很强大
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2010-6-11 15:15:17 | 显示全部楼层
Haskell有函数作图,符号计算,甚至GUI方面的功能或者第三方库吗
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2010-6-12 10:38:24 | 显示全部楼层
GUI库是有的,作图的不知,网上有对应的第三方库的清单,很好找 至于,符号计算,我想只可能比C/C++强大 lisp是函数式语言的老祖宗,几个老的符号计算包,似乎多是lisp的
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2010-6-12 17:33:08 | 显示全部楼层
http://bbs.emath.ac.cn/viewthread.php?tid=2444&extra=&page=1 上面问题的Haskell程序的一个比较紧凑的写法
  1. import List
  2. import Char(ord)
  3. main = do
  4. print \$ zip [1..] [(x, y, x + y)|a<-[1..4], b<-[1..9]\\[a], c<-[1..9]\\[a, b], let x = 100 * a + 10 * b + c,
  5. d<-[a+1..9-a]\\[b, c], e<-[1..9]\\[a, b, c, d], f<-[1..9]\\[a, b, c, d, e], let y = 100 * d + 10 * e + f,
  6. x + y < 1000,
  7. (== 10) \$ length \$ nub ((map (\c -> (ord c) - (ord '0')) \$ show (x + y)) ++ [a, b, c, d, e, f, 0])]
复制代码

评分

参与人数 1鲜花 +2 收起 理由
wayne + 2 hehe,编译通过了

查看全部评分

毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
您需要登录后才可以回帖 登录 | 欢迎注册

本版积分规则

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

GMT+8, 2024-11-23 16:04 , Processed in 0.024600 second(s), 15 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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