ごとけんです

In message "[ruby-list:14019] Re: What is Object in Ruby? (Re: Ruby and LISP)"
    on 99/04/22, 中村暁史 <anakamur / exa.i-tech.co.jp> writes:

>副作用って、プログラムが「関数」とかいうもので作れる!という
>幻想(少なくともoopな言語を前にすれば)が作り出した語なんじゃないかと
>勘ぐっています。

そうだと思います。僕が最初に副作用という言葉をみたのは
LISPの教科書でなのですが(N88BASICの次がLISPだったもので)、
LISPの文脈だと副作用という言葉は非常に的確に思えました。

Ruby でも例えば gets の結果が $_ に代入されているのも副
作用ということばが似合うような気がします。正規表現マッチ
とかもそうかも。

ただ、副作用なしで書けるかどうかというのは書きやすさとは
分けて考えるべき問題で、Ruby の場合は案外副作用と呼ばれ
るものを排除できるのでは無いかと直観しています。とくに 
I/O などの OS とのやりとりはオブジェクトとして扱うのは理
にかなっています。ちょっと怪しいのは制御がからむ例外と代
入やメソッド定義などメタな操作を可能にする eval 系のメソッ
ドくらいかな。

-- gotoken