「GHCi」の版間の差分

提供: MonoBook
ナビゲーションに移動 検索に移動
imported>Administrator
imported>Fallout New Tokyo
63行目: 63行目:
 
* [[再帰]]
 
* [[再帰]]
 
* [[bc]]
 
* [[bc]]
 +
* [[Haskell]]
 +
 +
==参考文献==
 +
{{reflist}}
 +
 +
{{stub}}

2014年3月4日 (火) 04:05時点における版

GHCiとは、高性能な電卓ソフトウェアである。

主な特徴

  • 四則演算累乗の計算ができる
  • 関数を定義し、計算できる
  • ファイルから関数の定義を読み込み、計算できる
  • 一度の計算指示で複数の値に対する計算結果を表示できる

インストール

GHCiはGHCに含まれる。インストールに関する詳細はGHCの項目を参照。

計算例

基本の四則計算

見たまんまである。

Prelude> 2*2+2/2
5.0

累乗と剰余

フェルマーの小定理の計算をしている。

Prelude> (12345^65536) `mod` 65537
1
Prelude> mod (77777^65536) 65537
1

関数の定義

非負整数階乗を計算する関数を定義し、それを利用して計算している。

Prelude> let fact n = if n<=1 then 1 else n*(fact (n-1))
Prelude> fact 5
120
Prelude> fact 13
6227020800

一度の計算指示で複数の値に対する計算結果を表示する

0以上63以下の整数Nについて、2のN乗を計算している。

Prelude> map (\a -> (a,2^a)) [0..63]
[(0,1),(1,2),(2,4),(3,8),(4,16),(5,32),(6,64),(7,128),(8,256),(9,512),(10,1024),
(11,2048),(12,4096),(13,8192),(14,16384),(15,32768),(16,65536),(17,131072),(18,2
62144),(19,524288),(20,1048576),(21,2097152),(22,4194304),(23,8388608),(24,16777
216),(25,33554432),(26,67108864),(27,134217728),(28,268435456),(29,536870912),(3
0,1073741824),(31,2147483648),(32,4294967296),(33,8589934592),(34,17179869184),(
35,34359738368),(36,68719476736),(37,137438953472),(38,274877906944),(39,5497558
13888),(40,1099511627776),(41,2199023255552),(42,4398046511104),(43,879609302220
8),(44,17592186044416),(45,35184372088832),(46,70368744177664),(47,1407374883553
28),(48,281474976710656),(49,562949953421312),(50,1125899906842624),(51,22517998
13685248),(52,4503599627370496),(53,9007199254740992),(54,18014398509481984),(55
,36028797018963968),(56,72057594037927936),(57,144115188075855872),(58,288230376
151711744),(59,576460752303423488),(60,1152921504606846976),(61,2305843009213693
952),(62,4611686018427387904),(63,9223372036854775808)]

ファイルから関数を読み込む

まず、以下の内容をcollatz.hsというファイルに保存する。

collatz n
 | n<=1         = 0
 | (mod n 2)==0 = 1+(collatz (div n 2))
 | otherwise    = 1+(collatz (succ (n*3)))

次に、保存したcollatz.hsがあるディレクトリカレントディレクトリになるようにGHCiを起動し、以下のように操作する。

Prelude> :l collatz.hs
[1 of 1] Compiling Main             ( collatz.hs, interpreted )
Ok, modules loaded: Main.
*Main> collatz 2382487059571037193129
2284

関連項目

参考文献