学校の課題を解くためにHaskellを使った話
こんにちは、かびさん@あおかびんです。
学校の課題で、ちょっとした計算問題を解くときに
普通に解くのが面倒くさいなーと思って
前まではPythonの対話を使って計算をしていたのですが、
この間確率統計のときに
先生「100万の中から1万個取り出す組み合わせはやろうと思ってもできない」
という発言があり(実際にはマクローリン展開かなんか使えばできるみたいな解説のため)
「できそう」と思ってしまったが故にPythonで書こうとしたら案の定計算できない。
また、3の20乗を計算する問題が出て、
計算するのにわざわざコード書くのも面倒だなと。
そこでHaskellを導入してやりました。その手順を書きます。
1. Haskell PlatformのDLとインストール
こちら、Haskell Platformの公式DLサイトよりHaskell PlatformをDLします。
ちなみに、brewを使わないのは
Haskell関係のパッケージ(?)をインストールするcabalが
brewだとうまく動いてくれないので、こちらのHaskell Platformを使います。
あとはDLしたpkgを開いてインストールしてください。
2.ターミナルでhaskellの対話シェルを起動する。
インストールが終わったら対話形式でhaskellを実行してみましょう。
コマンドラインで
ghci
と入力すると、最初の激重initの後haskellのインタラクティブシェルが起動します。
閉じるときは
:q
コマンドを入力すれば大丈夫。
(発展)3.100万から1万個を取り出す組み合わせ問題を解かせる。
適当なエディタを使って、test.hsに次のソースコードを書き込んで保存しましょう。
手元にファイルがなかったので、後で追記します。
(発展)4.分数の累乗とかを求めてみる。
haskell先輩は分数も扱うことができます。ありがたいですね!
ghciを起動したら、次のコードを入力してください。
import Data.Ratio
すると、%区切りで分数を扱うことができます。
1 % 3 * 1 % 4 -- 3分の1 × 4分の1 1 % 12 -- 12分の1
また、このまま累乗も計算できる。
((1 % 3) * (1 % 4)) ^ 20 -- (3分の1 × 4分の1)の20乗 1 % 3833759992447475122176 -- おおきなかず分の1
簡単な数式を入れるときはhaskellを使うようになりました。
すごく便利なghciでしたね。
以上、あおかびんでした。