Методы прямоугольников, трапеций, Симпсона.
Цель — освоиться с Хаскелем.
( where h = (b - a) / n )
P. S. GHC 6.12.1 прекрасно собирается из исходников и устанавливается как надо и куда скажешь :-)
Традиционно, первая программа — НОД по Евклиду :-)
1 gcd1 a b | a > b = gcd (a-b) b
2 | a < b = gcd a (b-a)
3 | a == b = a
4
5 gcd2 a b = gcd (abs a) (abs b) where
6 gcd a 0 = a
7 gcd a b = gcd b (rem b a)
8
9 main = do
10 print (gcd2 121 11)
11 print (gcd1 121 11)
12
Проверка:
# ghc -o gcd gcd.hs && ./gcd 11 11Под Виндой тоже работает.
Я скачал:
http://haskell.org/ghc/dist/6.10.3/g
Установил:
./configure && make install
Попробовал:
http://www.haskell.org/haskellwiki/Hask
Результат:
# ghci GHCi, version 6.10.3: http://www.haskell.org/ghc/ :? for help Loading package ghc-prim ...: can't load .so/.DLL for: HSghc-prim-0.1.0.0 (libHSghc-prim-0.1.0.0.so: cannot open shared object file: No such file or directory) # find /usr/lib/ghc-6.10.3/ -name \*libHSghc-prim\* /usr/lib/ghc-6.10.3/ghc-prim-0.1.0.0/libHSghc-prim-0.1.0.0_p.a /usr/lib/ghc-6.10.3/ghc-prim-0.1.0.0/libHSghc-prim-0.1.0.0.a
main = putStrLn "Hello, World!"
# ghc -o hello hello.hs hello.hs:1:0: Failed to load interface for `Prelude': There are files missing in the `base' package, try running 'ghc-pkg check'. Use -v to see a list of the files searched for.