recipe-collection
recipe-collection copied to clipboard
コレクションの初期コンテンツを作る。
- [x] リストを作成する
- [ ] ~~リストの全要素を順に処理する~~
- [x] リストの内容を表示する
- [x] 多次元リストを扱う
- [x] 複数のリストを並行処理する
- [x] リストの要素を取得する
- [x] リストの要素を変更する
- [x] リストの要素を削除する
- [x] リストの先頭・末尾に要素を追加する
- [x] リストの先頭・末尾の要素を取り除く
- [x] リストの要素を置換する
- [x] リストの要素をランダムに取得する
- [x] リストの要素数を調べる
- [x] リストの要素の出現回数を調べる
- [x] リストから複数の要素を一度に取得する
- [x] リストのインデックスと要素のペアを取得する
- [x] リストの要素を同じ値で埋める
- [x] リストから重複する要素を取り除く
- [x] リストから条件を満たす要素を取得する
- [x] リストの要素を検索する
- [x] 2つのリストに共通する要素を調べる
- [x] 2つのリストの差を取る
- [x] リストを連結する
- [x] リストの要素の順序を逆転する
- [x] 一定範囲の整数を要素とするリストを作成する
- [x] リストの要素の中から条件に合う要素があるか調べる
- [x] リストの先頭の要素を取得する
- [x] リストの順列・組み合わせを取得する
- [x] リストの要素を条件に基づいて分割する
- [x] リストをソートする
- [x] リストを連結して文字列にする
- [x] リストをバイナリサーチする
- [x] ハッシュマップを使う
- [x] マップを作成する
- [ ] ~~マップの全要素を順に処理する~~
- [x] マップの内容を表示する
- [x] マップに要素を追加する
- [x] マップ内にキーが存在するか調べる
- [x] マップの要素を削除する
- [ ] 1つのキーに複数の値が対応するマップを作る
- [x] マップのキーと値を入れ替える
- [x] マップをソートする
- [x] マップをマージする
- [x] 2つのマップの両方にあるキー・一方にしかないキーを見つける
- [ ] 巨大で疎なリストを使う
- [ ] スタックを使う
- [ ] キューを使う
- リストの全要素を順に処理する
- マップの全要素を順に処理する
のふたつは、いわゆる手続き的なループ処理のことでした。 直接対応する機能がないので除外します。
mapM(mapM_)とかfor(for_)あたりでできるので、入れておいても良い気がしますが。
確かにそのあたりはやりたいことが近いような感はありますね。
ただ、手続き的なループよりもできることが限定されるので、もっと具体的な項目として挙げるのがよいかな、と思います。 全ての要素を表示する、や、全ての要素を置換する、など。
「全要素を順に処理する」にも、写像、畳込み、副作用、フィルターなど、様々な目的があるので、そういった概要説明と関連項目へのリンクをまとめた項目にしてもよいかな。
なるほど、わかりました。
についてですが,HaskellではputStrLn
という文字表示IOとshow
という文字列化関数ははっきり分かれていて,C++のようにはなっていないので,print'
を定義するよりshow'
を定義してputStrLn . show'
するほうがHaskell的だと思いますがいかがでしょうか
@ncaq そうですね、それでもよいと思います。
このサンプルでは、mapM_
で IO アクションを繰り返し適用する、という趣旨ですのでIO ()
を返す関数を定義しました。