Workshop/StartHaskell2/exercise3

「関数の構文」練習問題

##論理演算

論理演算の関数をパターンマッチを使って実装してみよう。

実行例


うるう年

うるう年を判定する関数を書いてみよう。

  • 西暦年が4で割り切れる年はうるう年
  • ただし、西暦年が100で割り切れる年はうるう年でない
  • ただし、西暦年が400で割り切れる年はうるう年

実行例


FizzBuzz

FizzBuzz関数を実装してみよう。

実行例

ヒント: IntをStringに変換するには show関数を使います。


caseとifを使わない

次の関数からcaseとifを取り除いてみましょう。

ヒント: パターンマッチとガードを使います。


シーザー暗号

与えられた文字列をシーザー暗号で暗号化する関数を作成しよう。

  • a~z の文字は、指定された数だけ右へずらす、ただし z の次は a に戻る
  • A~Z の文字は、指定された数だけ右へずらす、ただし Z の次は A に戻る
  • それ以外の文字や記号や空白は、ずらさない

実行例

上の関数を使って、以下のシーザー暗号を解読できますか。

Par Yngvmbhgte Ikhzktffbgz Ftmmxkl

短い文字数でかけたら、あなごるに投稿しよう。

Caesar cipher - anarchy golf


パターンマッチの網羅

以下のソースコードをGHCiに読み込んでみて、警告がでるかどうか試してみましょう。 (p.37)

警告がなくなるようにcharName関数を修正しましょう。


  1. ここに問題を追加

練習問題リンク集