GHCi
ナビゲーションに移動
検索に移動
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