Haskell入門 1.4 〜 2.3
- 作者: 本間雅洋,類地孝介,逢坂時響
- 出版社/メーカー: 技術評論社
- 発売日: 2017/09/27
- メディア: 大型本
- この商品を含むブログを見る
1.4 プロジェクト作成とビルド
stackでプロジェクトを作成してビルドする。
$ stack new [project name]
- stack.yaml・・・ビルド情報を記載するファイル
- projectname.cabal、Seup.hs、LICENSE・・・Cabal形式のパッケージの管理
cabalって何?
本書の該当章には書いてなかったものの、Cabalとは。
RubyでいうGemのようなパッケージシステムとのこと。
参照:Haskellのパッケージシステム (Cabal) | Netsphere Laboratories
ビルド
$ stack build
これで実行ファイルprojectname-exe
が作られるはずだが、ディレクトリ内を探しても見つからず。ところが
$ stack exec projectname-exe
を実行すると、期待通りの動作をした。
サンプルコードには含まれていないが、単体テストをする場合は
$ stack test
第2章 基本の文法
2.1 文法の特色
手続き型言語ではコンピュータへの指示を文として上から順に並べて書くのに対し、関数型言語では細かな式をたくさん定義してそれらを組み合わせてプログラムを構築します。
2.2 基本のデータ型
> 値 :: 型
文字と文字列は明確に区別。
シングルクオートは文字でChar
型、ダブルクオートは文字列でString
型。
> :t 値
で値の型を表示する。
show関数を使うと、色々な値を文字列にできる。
I/Oアクション
I/Oアクションは IO a
型で表す。(aは型変数)。
例えばputStrLn
の返り値はIO ()
型で、Unit型の()を返しつつ画面にprintする。
ボトム
式の評価が正しく終わらないことを、ボトムといいます。
たとえば
undefined
error
といった式。
2.3 変数
Haskellでは=によって示した変数に対応するデータを後から変更できません。変更のできない変数のことを、一般的にイミュータブル(immutable)であると言います。
変数を宣言してその内容を決めるkとおを、Haskellでは変数(binding)と言います。
- whlere
- let ~ in ~ 式 ← OCamlでとても使ったやつ
今回の勉強時間 45分
累計勉強時間 19時間58分