まえがき
Scala Schoolを読んでいて、以下のような表現に遭遇した。Scala is highly expression-oriented: most things are expressions rather than statements.
日本語ではexpressionは「式」、statementは「文」と訳される。
両者の違い
プログラムの例を見ると言わんとすることは分かるけど、両者の定義が明確に分からなかったので調べてみた。- 式は値を生み出す、文は何か処理をする
- 式は文の部分集合
- 式は”それは何か”を表しており、文は"何をするか"を表している
- 関数型言語は式を、命令型言語は文を使うことが多い気がする
Pythonでの例
if/else
以下のようにif/elseはstatementっぽくも書けるし、expressionっぽくも書ける。
以下のようにif/elseはstatementっぽくも書けるし、expressionっぽくも書ける。
# statement x = 1 if x % 2 == 0: y = "even" else: y = "odd" # expression "even" if x % 2 == 0 else "odd"
printはPython 2までは文だったが、Python3から式になった。
Python 2では文なので値は返されない。
>>> type (print ("hello")) File "<stdin>", line 1 type (print ("hello")) ^ SyntaxError: invalid syntax
Python 3では式なので値が返される。
>>> type (print ("hello")) hello <class 'NoneType'>
0 件のコメント:
コメントを投稿