エントリーの編集
エントリーの編集は全ユーザーに共通の機能です。
必ずガイドラインを一読の上ご利用ください。
記事へのコメント1件
- 注目コメント
- 新着コメント
注目コメント算出アルゴリズムの一部にLINEヤフー株式会社の「建設的コメント順位付けモデルAPI」を使用しています
- バナー広告なし
- ミュート機能あり
- ダークモード搭載
関連記事
必ず成功させるという設計選択 - Faith and Brave - C++で遊ぼう
リストの先頭要素を取得するPreludeのhead関数は、空リストを与えると失敗します。 「1要素以上なら必ず... リストの先頭要素を取得するPreludeのhead関数は、空リストを与えると失敗します。 「1要素以上なら必ず成功する」という大半の状況でうまくいく処理のためにエラーハンドリングをするのはめんどくさいですし、エラーの可能性を残すというのは不安です。現状では必ず1要素以上のリストが渡されるけど、将来もしもここの箇所に0要素で来たら落ちるかもしれないからエラーハンドリングしておこう、という、現状では無駄なコードを書くことになるかもしれません。 この問題へのアプローチとして、「必ず1要素以上が入ることが保証されたリスト」を定義することで、エラーハンドリングすらさせない、というものが考えられます。 以下はHaskellで書いたものです。 type NeverEmptyList a = (a, [a]) front :: NeverEmptyList a -> a front xs = fst xs
2011/12/20 リンク