GHCi

提供: MonoBook
移動: 案内検索

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

GHCiを終了する[編集]

ghciを終了するにはキーボードから「:q」と打ち込む。

Prelude> :q

関連項目[編集]

参考文献[編集]