
Haskell
文章平均质量分 50
taiq
这个作者很懒,什么都没留下…
展开
-
Haskell小程序
--求一元二次方程的根roots a b c = let disc = sqrt (b*b - 4*a*c) twice_a = 2*a in ((-b + disc) / twice_a, (-b - disc) / twice_a) --输入底和高,求三角形面积main = do putStr "The base:原创 2010-05-02 09:18:00 · 830 阅读 · 0 评论 -
用utf8-string读写utf8文件(Windows和Linux下都行)
gtk2hs在windows下读取utf8文件,显示出来会出现乱码。根据下面资料使用utf8-string进行utf8文本文件的读写操作,就能解决乱码问题。注:用Windows自带的记事本新建的utf8文件开头有一个UTF8字符,即三个字节:/239/187/191。参考http://hackage.haskell.org/package/utf8-string官方示例代码:import System.IO.UTF8import Prelude hiding (readFile, writeFile)imp原创 2011-04-17 09:21:00 · 1779 阅读 · 0 评论 -
haskell如何处理中文字符?
<br />参见:http://www.btsmth.com/show_snapshot.php?en_name=FuncProgram&gid=20701<br /> <br />要用到ghc的一些特性ImplicitParams。<br /><br />module Main(<br /> main) where<br />import System.IO.Encoding hiding (print)<br />import Data.Encoding.GB18030<br />import Dat转载 2011-04-17 09:35:00 · 2074 阅读 · 0 评论 -
haskell代码片段
-- 一个经典的菲波纳契数列的函数定义,求每一个位置上的数值fib 1 = 1fib 2 = 1fib n = fib(n-1) + fib(n-2)-- 产生一个无限长的fib数列fib_l n = fib n : fib_l(n+1)take 10 (fib_l 1) => [1,1,2,3,5,8,13,21,34,55]--另一个更快解法fibs = fibgen 1 1 fibgen n1 n2 = n1 : fibgen n2 (n1+n2) --求解素数的一个无限数列方法:prime = s转载 2011-04-22 18:53:00 · 820 阅读 · 0 评论 -
等比级数(geometric progression) 和等差数列
--等比级数 geometric progressiongp a q = a : gp (a*q) q--gp a q = map (/x -> a*q^x) [0..]原创 2011-04-24 00:13:00 · 1151 阅读 · 0 评论 -
分解质因数
<br />-- 分解质因数<br />-- file: pfactors.hs<br /> <br />primes = sieve [2..]<br /> where sieve (x:xs) = x : sieve (filter (/y ->y `rem` x /= 0) xs)<br /> <br />pfactors n = pfactors' n primes<br /> where<br /> pfactors' 1 _ = []<br /> pfactors' _ [] =原创 2011-04-24 09:22:00 · 1017 阅读 · 1 评论 -
Fibonacci数列
module Main whereimport System.Environmentfib :: Int -> Intfib 1 = 1fib 2 = 1fib x = fib(x-2) + fib(x-1)fib' 1 = [1]fib' 2 = [1, 1]fib' n = (x+y):xs where xs@(x:y:_) = fib' (n-1)main :: IO ()main = do argv putStr ("fib' " ++ (head argv) ++ " = ") p原创 2011-04-22 21:20:00 · 467 阅读 · 0 评论 -
背包问题的haskell解法
-- file: knapsack1.hsmaxVal [] [] _ = 0maxVal (w:ws) (v:vs) aW = if w > aW then without_it else max without_it (with_it+v) where without_it = maxVal ws vs aW with_it = maxVal ws vs (aW-w) weights = [1, 5, 3, 4]vals = [15, 10, 9, 5]evalue原创 2011-04-24 08:28:00 · 806 阅读 · 0 评论 -
斐波那契(Fibonacci)数列测试几种编程语言速度
Fibonacci of 40:===================C: 102334155real 0m1.188suser 0m1.176ssys 0m0.008s*******************Haskell: 102334155real 0m15.508suser 0m15.425ssys 0m0.028s*******************run haskell scriptHaskell: 1023原创 2011-04-27 12:44:00 · 2628 阅读 · 2 评论 -
ghc-6.10.3和gtk2hs-0.10.1-win32安装包
http://sourceforge.net/projects/gtk2hs/原创 2011-04-17 09:37:00 · 622 阅读 · 0 评论 -
隐藏Windows命令提示窗Hiding the console on windows
用ghc编译时加上:-optl-mwindows原创 2011-04-17 00:47:00 · 706 阅读 · 0 评论 -
与数有关的函数
-- 与数有关的函数 -- 素数primeNumber 1 = FalseprimeNumber n = [ x | x primeNumberList m n = filter (primeNumber) [m..n] -- 因数factor n = filter (/x -> (mod n x) == 0) [1..n] --原创 2010-05-04 10:44:00 · 400 阅读 · 0 评论 -
神奇的Haskell——“做什么”而不是“怎么做”
神奇的Haskell——“做什么”而不是“怎么做” --求整数边长的直角三角形rightTriangles m n = [(a, b, c) | c --快速排序quicksort :: (Ord a) => [a] -> [a]quicksort [] = []quicksort (x:xs) = let smallerSorted = quicksort [原创 2010-05-01 19:59:00 · 3771 阅读 · 0 评论 -
乘法表
module Main wheremain :: IO ()main = putStr $ genLines 9genLine n = unwords [ (show m) ++ "x" ++ (show n) ++ "=" ++ (show (m*n)) ++ (if m*n genText n = unlines [genLine m | m 编程体会:把要输出的内容放在原创 2010-05-02 07:45:00 · 790 阅读 · 0 评论 -
安装wxHaskell
一、ubuntu 10.04 sudo apt-get install cabal-installsudo cabal updatesudo cabal install cabal-install sudo apt-get install libglusudo apt-get install libglu-dev sudo apt-get install libwx原创 2010-05-05 20:24:00 · 914 阅读 · 0 评论 -
Get gtk2hs working on windows
Posted by pierric on 2010年01月19日 Leave a comment (0)Go to comments<br />As the offical site doesn’t release an installation buddle for GHC 6.10.4. It’s realy a pain to get gtk2hs working well. I achieve it by the following steps:install Haskell platfor转载 2011-02-25 22:51:00 · 676 阅读 · 0 评论 -
Vim脚本之Haskell卷
<br />最近常写Haskell代码, 苦于vim本身ftplugin除了语法加亮处没什么特別的功能。 深感其縮进功能欠佳。在其它语言中用Tab, >>, << 习惯了(我是TAB派的,讨厌空格作缩进)。 Haskell虽是缩进决定結构的,但不像Python,TAB作缩进将会变得很hässlich(貌似ghc本身的代码里也有许多Tab?)。 故自己写了一些脚本,使TAB不再是制表符,两是智能的缩进。先写这么多,明天再加其它featureautocmd FileType haskel转载 2011-02-27 18:02:00 · 1520 阅读 · 0 评论 -
Haskell 中的语法糖
在Wiki里关于语法糖的一些历史介绍:语法糖(Syntactic sugar),是由Peter J. Landin(和图灵一样的天才人物,是他最先发现了Lambda演算,由此而创立了函数式编程)创造的一个词语,它意指那些没有给计算机语言添加新功能,而只是对人类来说更“甜蜜“的语法。语法糖往往给程序员提供了更实用的编码方式,有益于更好的编码风格,更易读。不过其并没有给语言添加什么新东西。Wiki里提到,在C语言里用a[n]表示*(a+n),用a[n][m]表示*(*(a+n)+转载 2011-02-27 18:04:00 · 1335 阅读 · 0 评论 -
gtk2hs for windows相关网址
http://www.haskell.org/haskellwiki/Gtk2Hs#Windows_7_32_bithttp://code.haskell.org/gtk2hs/docs/tutorial/Tutorial_Port/index.xhtmlhttp://www.10pig.cn/index/gtk2hs.aspxhttp://www.mirrorservice.org/sites/download.sourceforge.net/pub/sourceforge/g/project/gt/gt转载 2011-02-25 23:04:00 · 731 阅读 · 0 评论 -
Windows 7安装gtk2hs+glade的成功经验
我花费了许多时间在Windows上安装gtk2hs和glade,今天终于成功。 一、参考资料1、http://www.haskell.org/haskellwiki/Gtk2Hs主要的安装指导。但写得不完整,没有注明成功所用的版本,我遇到的许多的问题也没有说明。所以我才特意写了本文,给后来人一个参考,让他们少走弯路。2、http://code.haskell.org/g原创 2011-04-16 21:50:00 · 3669 阅读 · 2 评论