Skip to content

haskell を少しづつ学んでいく

Notifications You must be signed in to change notification settings

garaoh70/haskell-practice

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 

Repository files navigation

haskell-practice

haskell を少しづつ学んでいく

1週目

Haskellの最小の文法に触れ、最初の小さなプログラムを作ってGitHubにアップする

Day 1 : 環境構築とHello World

  • Windows で環境を作成
  • 最初のHello, World!をコンパイル&実行

Day 2 : 基本の型と関数定義

  • Int などの型を確認
  • 簡単な関数を書く

Day 3 : リストとタプルを学ぶ

  • リストの使い方
  • タプルの使い方
  • 演習
    • リストの合計を計算する関数を書く
    • タプルの要素を入れ替える関数を書く

リストの合計は sum を使用した
C# の Enumerable.Aggregate っぽい記述はまたの機会に

Day 4 : パターンマッチとガード

  • パターンマッチ
  • ガード
  • 演習
    • 整数を受け取って、正負ゼロを文字列で返す関数を書く

Day 5 : 再帰関数の入門

  • 再帰関数
  • 演習
    • 自然数nまでの総和を再帰で計算する

Day 6 : リスト操作の練習

  • map
  • filter
  • fold

ついでに trace も使ってみた

Day 7 : 1週間まとめ

  • 小さなまとめプログラムを作る
    • 問題はChatGPTに作ってもらった
  • 開発環境を Macintosh へ移行した

2週目

高階関数と関数型思考の深化
関数を扱う関数(高階関数)やラムダ式に慣れ、関数型らしい書き方を自然に使えるようにする

Day 1 : 高階関数とは何かを理解する

  • 2回関数を実行する applyTwice の理解
    → だんだん怪しくなってきた。ChatGPT に色々聞いた

Day 2 : ラムダ式とセクション記法

  • ラムダ式でmap関数を使ってみる

Day 3 : 関数合成とポイントフリースタイル

  • 関数合成演算子 (.) を学ぶ
  • ポイントフリースタイルとは何か

Day 4 : リスト処理の応用

  • map, filter, foldr, foldl の使い分け
    • 奇数だけ取り出して2倍にする
    • リストの積を計算する

Day 5 : Maybe

  • Maybe型とは?(値がある/ないを扱う)

About

haskell を少しづつ学んでいく

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors