おっPython
すぐ傍にあって気がつかないこと
これで何が表示されるのかという問題。普通に引っかかってしまいました。
で、JavaだとString.replaceAll()が副作用がないということが、罠だったわけですが、Pythonでも結構よくやるきがするよね。
Rubyだと!を付けたりしますが、Pythonでは「副作用があるメソッドは値を返さない」とう結局実行しなきゃ気付かないガードだし、いっそ関数型チックに副作用がある構文と無い構文を明確に分ける言語って無いのだろうかと考えたりしました。
個人的には、メソッドは副作用があるように見えて、関数は副作用がないように見えますが、
Pythonで書くときはあまりクラスを書かないので、結局副作用ありまくりの関数を良く書いているような。
String s = "いっぱい";
s.replaceAll("^い", "お");
System.out.println(s);
これで何が表示されるのかという問題。普通に引っかかってしまいました。
で、JavaだとString.replaceAll()が副作用がないということが、罠だったわけですが、Pythonでも結構よくやるきがするよね。
Rubyだと!を付けたりしますが、Pythonでは「副作用があるメソッドは値を返さない」とう結局実行しなきゃ気付かないガードだし、いっそ関数型チックに副作用がある構文と無い構文を明確に分ける言語って無いのだろうかと考えたりしました。
個人的には、メソッドは副作用があるように見えて、関数は副作用がないように見えますが、
Pythonで書くときはあまりクラスを書かないので、結局副作用ありまくりの関数を良く書いているような。