
127
5.2 変異は低レイヤーでの操作
performAdminCommand({type: 'join', target: 'foo'});
// changeView
関数を実行
dispatch
の関数リストの前にコマンドを追加して、オーバーライドすることで動作
を制限できます。
var performTrialUserCommand = dispatch(
isa('join', function(obj) { alert("
許可されるまで参加できません
") }),
performCommand);
この例を実行して、新たな動作を確認します。
performTrialUserCommand({type: 'join', target: 'foo'});
//
拒否メッセージが入った
alert
を実行
performTrialUserCommand({type: 'notify', message: 'Hi new user'});
// notify
関数を実行
これが関数合成の本質となるものです。既知の方法で既存のパーツを使うことによ
り新たな動作を組み立て、その新たな動作も後にパーツとして使用できます。本章で
はこれから、次に紹介するカリー化を始めとして、関数を合成する他の方法を紹介し
ます。
5.2
変異は低レイヤーでの操作
命令形スタイルで書かれた関数の例にはすでに多数出会っているとおもいますが、
これより先でも多くの例をみることになります。関数型スタイルでコードを書くこと
は理想的である場合も多いですが、使用するライブラリの特性や、実行速度や他の便 ...