proglog

主にプログラミングに関する断片的メモ

[devel][haskell] はじめてのH

askellのプログラム。

razie.hs

モナドなにそれ状態。
「やさしい Haskell 入門」は正直な話、根本的に意味が判らない状態。
意味不明のエラーに悩まされつつ、迷宮に入り込んでアドホックなことを繰り返した結果。

今後のために敢て恥を晒してみる。

処理系はThe Haskell PlatformDownload Haskell

参考にしたのは以下のサイト。

「やさしい Haskell 入門」で挫折して、だいたいこの順で読んだ。

その後、"HaskellUNIX コマンドを書こうシリーズ"(Haskell)のソースをいくつか読んだ。


型クラスはjavaのinterfaceかc++の抽象基底クラス。

dataは、列挙型か抽象データ型。

モナドはまったく判らないけど、なんか高度な制御に使われる、なんかタグの付いたデータか、カプセル化されたデータで、専用の関数を使ったり、割って取り出したりしないといけない。
とりあえず避けておきたいけど、schemeの継続と違ってこっちはある程度扱えないとデスクトップで使えるプログラムは書けないっぽい。

構築子ってなんだよって思ったら、コンストラクタか。

ループは全て再帰。変数値の破壊操作は完全にないので状態的なものは再帰の仮引数で。

だいたいこんな認識。

判らない キーワードはHoogleでフグる?

emacsのmelpaで入るhaskell-modeとかghc-mod(ghc)で、hlintを掛けると、文法チェックというより若干リファクタリング的なサジェスチョンをくれるのに驚いた。


あと参考資料的に

冒頭のプログラムは、windowsのiniファイルのような形式の設定ファイルの若干のフォーマット変更。

[nameA]
optX=valXA
optY=valYA
[nameB]
optX=valXB
optY=valYB

という形のものを

optX1=TvalXA
optY1=valYA
optX2=KvalXB
optY2=valYB

こんな感じに変更するもの。

pythonのConfigParser的なもののhasukell版がData.ConfigFileで、これを使って読み込んで、あとは書くだけのはずが。
"caval install Data.ConfigFile"とかする。