トップページ > プログラム > 2015年04月16日 > 9N3+Oa4T

書き込み順位&時間帯一覧

25 位/149 ID中時間01234567891011121314151617181920212223Total
書き込み数0000000000000000000000202



使用した名前一覧書き込んだスレッド一覧
デフォルトの名無しさん
関数型プログラミング言語Haskell Part28 [転載禁止]©2ch.net

書き込みレス一覧

関数型プログラミング言語Haskell Part28 [転載禁止]©2ch.net
70 :デフォルトの名無しさん[sage]:2015/04/16(木) 22:13:00.24 ID:9N3+Oa4T
wholemeal programming というのは、データ型に対する演算を、
ある構造を受け取って別の構造へと変換する関数によって表現すること、
と捉えて間違いないでしょうか。


Thinking Functionally with Haskell という本に数独ソルバーを作る章があり、
そこで wholemeal programming が出てきました。

行のリストとして表現された9x9行列 type Matrix a = [[a]] に対して、
列のリストや、3x3小行列のリストを得る関数が定義されます。
その際、m :: Matrix a に対して m !! i !! j などとインデックス計算をして個々の要素を参照するのではなく、
行列を転置して列のリストを得たり、3要素ずつグループ化する関数などを合成して小行列リストを得たり、
そうやって構造そのものの形を変換しており、そのようなプログラミングスタイルが
wholemeal programming だと紹介されていました。


wholemeal programming というのは、このような構造変換だけでなく、
もっと広い意味を持っているのでしょうか。
関数型プログラミング言語Haskell Part28 [転載禁止]©2ch.net
71 :デフォルトの名無しさん[sage]:2015/04/16(木) 22:25:21.10 ID:9N3+Oa4T
>>70
ちなみに、本では構造を変換するとは書かれてなくて、
(インデックス計算するのではなく)行列それ自身を complete entity として扱う関数を定義する
と書かれていました。

しかし、言っている意味がよく分からず、実際にやっていたのが構造全体を組み替える処理だったので、
とりあえず >>69 のように捉えてみたしだいです。


※このページは、『2ちゃんねる』の書き込みを基に自動生成したものです。オリジナルはリンク先の2ちゃんねるの書き込みです。
※このサイトでオリジナルの書き込みについては対応できません。
※何か問題のある場合はメールをしてください。対応します。