Haskell勉強メモ(1〜5章)

勉強資料

https://www.amazon.co.jp/%E3%81%99%E3%81%94%E3%81%84Haskell%E3%81%9F%E3%81%AE%E3%81%97%E3%81%8F%E5%AD%A6%E3%81%BC%E3%81%86-Miran-Lipova%C4%8Da/dp/4274068854/ref=pd_bxgy_thbs_d_sccl_1/358-4542030-9939648?pd_rd_w=e1lAt&content-id=amzn1.sym.a6ef8710-f9e8-4ae9-bcba-322dc294eed3&pf_rd_p=a6ef8710-f9e8-4ae9-bcba-322dc294eed3&pf_rd_r=WYSBXNSEZVEQJF0N98QK&pd_rd_wg=YL1K8&pd_rd_r=a0d15423-627d-46e4-beea-5cbf7448dba9&pd_rd_i=4274068854&psc=1

文法について

  • 数学の記法に似ている
  • 変数を"束縛する"という考え方が強い
  • 配列を1つの集合と見る感覚
  • 関数は全て1引数の関数(カリー化関数)に分解されていて、どこで区切るかが自由
  • 関数は、関数名 引数 = 戻り値

再帰関数のコツ

  1. 基底部(例外的なもの)を考える
  2. 繰り返される処理を実行し、自身を呼び出す

カリー化と部分適用

  • カリー化
    • 多引数の関数を1引数の関数に変換すること
  • 部分適用

    • 多引数の関数にいくつか引数を与えて、部分的に引数を適用すること(関数を束縛している)
  • シグネチャによる関数の意味の読み取り方

    • 引数と戻り値に分けて考えると意味がとりやすい

$.の違い

  • $
    • 関数適用の優先順位を変えるもの
  • .
    • 関数合成。関数をまとめるという考え方

畳み込みについて

...