A. Rationale for some of the design decisions

1. Lambda functor arity

˼ˤץ졼ۥκΥǥåˤäơ̤δؿ֥Ȥΰοꤵ롣 ñʤǾΰοǤäơؿ֥ȤǤդοΰ뤳ȤǽǤ롣(פʤΤǤꡢ̵뤵롣) Ĥ bind ȼθƽФͤƤߤ롣

bind(g, _3, _3, _3)(x, y, z); 
bind(g, _1, _1, _1)(x, y, z); 
ǽιԤǤϡΤ x y ̵뤷ơ Τ褦ʸƽФȤʤ롣
g(z, z, z) 
ܤǤϡ y z ̵뤵졢 Τ褦ʸƽФȤʤ롣
g(x, x, x)
Υ饤֥ǤϡԤη̤ϥѥ顼Ȥʤä ϴŪ˰ȽΥȥ졼ɥդǤꡢ ϥ饤֥ Boost Υӥ塼λ絬Ϥä줿 ̩ʰο åμϡ ץΥ顼ʳȯǤ뤫⤷ʤȤȤȡ Τ褦Ū˰̵뤹˼ϴñ˵ҤǤ뤫Ǥ롣
(_3, bind(g, _1, _1, _1))(x, y, z);
Φ˼ϻĤΰ롣 ޱ黻Ҥκ¦ΰϲ⤷ʤ ޱ黻Ҥϱ¦ΰɾ̤֤ ο̩˥åȤƤ⡢ ɤ g(x, x, x) θƽФˤʤ롣

̩ʰοΥåȿФ뤳Ȥμϡ ̵뤹뤳ȤɬפȤʤΤ̤ǤΤǡñ˵ҤǤ٤ǤȤȤȡ ºݤˤϸ̩˰åƤ⡢оŪʦ˼ξˤäˡ ºݾ夢ޤ뤳ȤǤʤȤȤǤ롣 㤨Сץޤ _1 + _2 Ȥ򵭽Ҥä ä _1 + 2 ȵҤˡ ̩˰οåСѥϥ顼ȯ롣 ְä 1 + _2 Ǥäˤϡ顼ȯʤ ˡ¤ƥåСñˤʤ롣 Boost Υӥ塼ο˽äơ̩ʰΥåϵѲ줿