>>328
> ピッチャーの前で地面に落ちたりバックネットに直撃する可能性も残している
> だからデッドボールに怒って殺しにくることも先入観無く想像できる

なんで result <== catcher <== batter <== pitcher としか書けない前提なの?
他の表し方もできることは知らないのか? それともわざと無視してる?

result<== field (catcher <== batter <== pitcher ==> fielders)

こうすれば、ピッチャーの前で地面に落ちたりバックネットに直撃する可能性も表現できる。
牽制球も表現できるし、バッターが打った球がホームランになったり、
フライを捕られたり、送りバント失敗したりする結果も得られる。

この式から、それらの事ができることを想像する人間側の能力と、
ball.throw(batter, catcher) というコールからそれらの事ができることを想像する人間側の能力とに、
どのような違いがある?


ちなみに、Haskell は次のように書いて処理させることも問題なくできる。
問題なくというのは、Haskell の長所(遅延評価や参照透過性など)を保ったままという意味だ。
ball # throw(batter, catcher)
たまたまドット演算子が関数結合演算に使われてるから別の記号を使った。
このように書けば、当然あなたは「ボールの行き先を曖昧なままにしている」と感じるよな。

それなら、あなたが言う OOPL の特徴は、本当に OOPL 特有の特徴なのか?
言語特有の特徴ではなく、書き方に備わる特徴なのではないのか?