積極的にメモっていく姿勢

題名詐欺。更新頻度の低さが売り。

Linuxとかの勉強 #2.1

Linuxとかの勉強 #2.0 - 積極的にメモっていく姿勢

これの続きです。
前回はmercurialの御話のみでしたが、今回はHaskellについての御話のみです。

せっかく勉強することにしたので、参考書を仕入れました。
ということで、「ふつうのHaskellプログラミング」を使って勉強して行きます。

1.進行度合

今回は「第1部 Haskellの概要」を読破しました。
章で言うと、第1章から第4章。

2.思うところ

新鮮な感じ

今まで触れていた手続き型言語と概念からまるっと違うような気がしました。値に変数を束縛する、hogeにfuga関数を適用する、このあたりの言い回しに慣れることが大切そうです。まずもって御話ができないと困るので。

2にxを束縛する

x = 2

hogeにfuga関数を適用する

fuga hoge
リストと長いお付き合い

文字列を改行ごとに区切って、Stringのリストにしてくれる lines 関数。
その逆に、Stringのリストを改行で結合して、ひとつの文字列にする nulines 関数。
リスト xs の要素ひとつづつに関数 f を適用して、その結果をリストにして返してくれる map 関数。

などなど、リストとお付き合いできないと、生きにくい世界のように感じました。

3.今回書いたソース

今回書いたソースは、bitbukcetに置いておくことにしました。

tomio2480 / haskell_practice — Bitbucket

Bitbucket

Free source code hosting for Git and Mercurial by Bitbucket

Mercurialで作ったリポジトリをWeb上に置いておくことができるサービスのようなもののようです。どうやら、Gitのリポジトリも管理が可能なようです。

使用手順は、ユーザーを作成し、緑色の + を押して(Create repository)します。
きっと、色々訊かれると思いますが、そつなく答えていきます。

これで、リポジトリが完成しました。
凡その場合、ここで作って、cloneしてそこでソースを変更、pushの流れの様ですが、既にローカルにリポジトリを作ってあるので、手順が変わります。

pushしたいリポジトリの .hg ディレクトリのあるところで、

hg push https://bitbucket.org/ユーザー名/リポジトリ

としてやることで、更新されます。
web上でリポジトリが更新されていることが確認できるはずです。

バージョン違いによるエラー

現在使用している「ふつうのHaskellプログラミング」の第4章に書いてあるソースの中に、

import System
import Data

の記述があるのですが、これでは現在使用している ghc 7.4.1 でエラーを吐いてしまいます。

そこで、

import System.Environment
import Data.List

と書きなおしてやることで、エラーを回避できるようです。

今回はここまで

今回は、Mercurial編とHaskell編の2部構成で御勉強でした。
Mercurial編はリポジトリの作成から、ローカルリポジトリへのcommit、Bitbucketへのpushという流れをなぞりました。
Haskell編は「ふつうのHaskellプログラミング」の第一部を読了しました。

本来ならば、本日も進んでいく予定でしたが、やったことをまとめるのに精一杯でした。ということで、次回は本の第5章から読んでいく事にします。