関数型プログラミング言語Haskell Part24
■ このスレッドは過去ログ倉庫に格納されています
0653636
2014/01/26(日) 19:13:29.23> Cでは(Monad m)か(MonadIO m)
これが今のところ俺の力ではできなくて、うーんって唸ってるところ。
MVC では制御の起点は C になる(ここの認識が間違ってたら全てやり直しだけど)。
データの表示という処理なら、C が M からデータを取ってきて、V へ渡す。
データの書き換えなら、C が M へ書き換えを指示し、結果を受けて V へ渡す。
C の中にはデータ変項関数 changeRecords やデータ表示関数 viewRecords などがあり、
またユーザーからの入力を受け付ける関数 input もある。
関数 input の中に、例えばユーザーがデータ変更ボタンを押したら関数 changeRecords を呼び、
ユーザーが最新データ表示ボタンを押したら関数 viewRecords を呼ぶ、などの処理がある。
この関数 changeRecords や関数 viewRecords の型は、
M が公開しているソース関数と同じコンテキストが必要になる。
(PersistMonadBackend m ~ SqlBackend, PersistQuery m) => ...
なぜなら、たとえば関数 viewRecords の定義は recordsSource $$ recordsSink だから。
この辺りは勉強中だから、本当にそうなのかと言われれば自信はない。
ただ、俺は viewRecords = recordsSource $$ recordsSink という関数は、
MVC の役割から言って C に書くのが相応しいと思ってる。
(だからコンテキストの問題で困ってる)
もしかして、この考え方を改めようというアドバイス?
■ このスレッドは過去ログ倉庫に格納されています