まえがき Scalaを利用している現場では、しばしば、コーディング規約、あるいは、コードレビューで「varやwhileを使っている」ことが指摘されて、使わないように修正させれることががあります。 どこの現場で、という話はしないですが、私が実際に見たり聞いたりした範囲では、5社以上はあるんじゃないか、という感じです。 もちろん、コーディング規約やコードレビューの指針はそれぞれの会社で適切に運用されていればよくて、個々の話に私を口を出す権利は無いのですが、この話はScala現場でしばしば問題にされるので、一度書いておきたくなりました。 何故whileやvarが忌避されるのか これは、関数型プログラミングの文脈を知っている方なら、おおよそ推測がつくと思うのですが、本質的にそれらの言語機能は、副作用を前提としているから、というのがあると思います。 たとえば、以下のプログラムは、1から9までの数につ
![Scalaでwhileやvarを使ってもいい理由 - Qiita](https://cdn-ak-scissors.b.st-hatena.com/image/square/c743f9066750a30ea9ab10ae17470bba2421c694/height=288;version=1;width=512/https%3A%2F%2Fqiita-user-contents.imgix.net%2Fhttps%253A%252F%252Fcdn.qiita.com%252Fassets%252Fpublic%252Fogp-background-1150d8b18a7c15795b701a55ae908f94.png%3Fixlib%3Drb-1.2.2%26w%3D1200%26mark%3Dhttps%253A%252F%252Fqiita-user-contents.imgix.net%252F~text%253Fixlib%253Drb-1.2.2%2526w%253D840%2526h%253D380%2526txt%253DScala%2525E3%252581%2525A7while%2525E3%252582%252584var%2525E3%252582%252592%2525E4%2525BD%2525BF%2525E3%252581%2525A3%2525E3%252581%2525A6%2525E3%252582%252582%2525E3%252581%252584%2525E3%252581%252584%2525E7%252590%252586%2525E7%252594%2525B1%2526txt-color%253D%252523333%2526txt-font%253DAvenir-Black%2526txt-size%253D54%2526txt-clip%253Dellipsis%2526txt-align%253Dcenter%25252Cmiddle%2526s%253D5083f5ef796b9f6a7469ba32dfea4819%26mark-align%3Dcenter%252Cmiddle%26blend%3Dhttps%253A%252F%252Fqiita-user-contents.imgix.net%252F~text%253Fixlib%253Drb-1.2.2%2526w%253D840%2526h%253D500%2526txt%253D%252540kmizu%2526txt-color%253D%252523333%2526txt-font%253DAvenir-Black%2526txt-size%253D45%2526txt-align%253Dright%25252Cbottom%2526s%253Dee4896674d9f8792bdcd0cc3ee1ff928%26blend-align%3Dcenter%252Cmiddle%26blend-mode%3Dnormal%26s%3D7f2bdd0a3a6c33220e9b427398e2c0c0)