2021-04-01から1ヶ月間の記事一覧

Haskell勉強メモ 7

クイックソート アルゴリズムの定番クイックソート。 といっても、私はアルゴリズムをちゃんと勉強したことないので名前しか知らないのだけれど。。 これを関数型ではどうやって解くのかを見ていく。 が、先に手続き型ではどうやるのか。アルゴリズム本を見…

Haskell 勉強メモ6

再帰 関数型言語では再帰はよく出てくる。 最大値を求める関数を考えてみる。命令的に考えると、現在の最大値を保持する変数を用意し、リストの全ての要素についてループして、変数を更新していく形になる。Scalaで書いてみると def maximum(list: List[Int]…

Haskell 勉強メモ5

let式 let 式は変数を束縛する。 let 式自身も式。式であるとは、「値を持つ」ということ。 円柱の表面積を求める。 cylinder :: Double -> Double -> Double cylinder r h = let sideArea = 2 * pi * r * h topArea = pi * r ^ 2 in sideArea + 2 * topArea…

Haskell 勉強メモ4

関数を書くための構文 パターンマッチ Scala でもたくさん使うパターンマッチ。Haskell版も見てく。 渡された数が7かどうかを判別する関数。 Haskell版 lucky :: Int -> String lucky 7 = "LUCKY NUMBER SEVEN!" lucky x = "Sorry, you're out of luck, pal!…