学生の備忘録なブログ

日々のことを忘れないためのブログです。一日一成果物も目標。技術系はQiitaにあげるように変更しました。

Haskellの学習する動機

なぜhaskellを学ぶか

注意この記事は,全く固まっていない私の考えを形にするためのものです.

 これにはいろいろな記事が言語問わずある.  

 今日2017/04/19時点で学ぶ動機は,現状,まだ使われている純粋関数型の生き残りであるからである.

 純粋関数型と呼ばれる言語は数あれど,現在いまだ使われているものは少ない,そのなかでも,変数や引数の評価の際に,融通がきかないのはHaskellくらいである.他の言語は人間に歩み寄り,本来の純粋関数型の形では通らない表現が可能である.

 よって,純粋関数型を勉強したいと思った時Haskellが適切である.これは,別にHaskellが生産性が高く,直感的で,コミュニティが活発で,パッケージが充実していて,などそういった尺度で選ばれたわけではない.

結論

 純粋関数型の勉強のため

追記2017/04/19

 あまりにもあまりになので「ふつうのHaskellプログラミング」を読んでみた.

「ふつうのHaskellプログラミング」作者が言うには,,,

  1. 柔軟なプログラミング
    • 高階関数というものをhaskellは持つ.
      • これは,関数を引数として受け取ったり,返したりする関数のこと.
  2. コンパイル時の型のチェックが強力
    • 多相型という機能があり,様々な型を使いたいときに統一的に扱うことができる.これはJavaの総称型とほぼ等しい.
  3. 可読性が高い
    • 再代入ができないことは,現代の大人数のソフトウェア開発においても,代入の乱用による可読性の低下を0にできる.
  4. 遅延評価
    • 純粋関数型言語は他多数ある.ML,CommonLisp,Scheme,などだ.しかし,これらは遅延評価をしない.
      • 遅延評価とは引数を必要なときに評価するということである.これは,純粋関数型において,柔軟性を発揮する.

markdown記法について

 空白はめちゃくちゃ大事.

 特に,記号をリストとかにしたい時,記号の後に空白入れないといけない

 "「* 」でリスト表現,ただし,タブか空白文字4つで階層を表さないといけない"

* hoge
    * fuga
        * piyo
  • hoge
    • fuga
      • piyo