Example4.1

4.1 式と簡単な関数

Scala システムには、素敵な計算機と見ることのできるインタプリタが同梱されています。ユーザーは式をタイプすることで計算機と交信できます。計算機は評価した結果とその型を返します。たとえば

scala> 87 + 145 
unnamed0: Int = 232 

scala> 5 + 2 * 3 
unnamed1: Int = 11 

scala> "hello" + " world!" 
unnamed2: java.lang.String = hello world! 

部分式に名前を付け、以後は式の代わりにその名前を使うこともできます。

scala> def scale = 5 
scale: Int 

scala> 7 * scale 
unnamed3: Int = 35 

scala> def pi = 3.141592653589793 
pi: Double

scala> def radius = 10 
radius: Int 

scala> 2 * pi * radius 
unnamed4: Double = 62.83185307179586

定義は予約語 def で始まります。= 記号に続く式を表す名前を導入します。インタプリタは導入された名前と型を返します。

def x = e のような定義の実行は、式 e を評価しません。その代わり、x が使われる時はいつでも e は評価されます。一方で、Scala には値の定義 val x = e もあり、定義評価の一環として右辺 e を評価します。その後 x が使われるときは、前に計算された e の値で直ちに置き換えられので、式を再評価する必要はありません。

式はどのように評価されるのでしょう? 演算子とオペランドから構成される式は次の簡単化のステップを繰り返し適用して評価されます。

  • 最も左の操作を選ぶ
  • そのオペランドを評価する
  • オペランド値に演算子を適用する

def で定義された名前は、名前を (未評価の) 定義の右辺で置き換えることで評価されます。val で定義された名前は、名前を定義の右辺の値で置き換えることで評価されます。評価プロセスは値を得たら終了します。値は文字列や数や配列やリストといったデータアイテムです。

Example 4.1.1 数式の評価です。

    (2 * pi) * radius 
→ (2 * 3.141592653589793) * radius 
→ 6.283185307179586 * radius 
→ 6.283185307179586 * 10 
→ 62.83185307179586 

式を値へと段階的に簡単化するプロセスを 簡約 と呼びます。


ーーー 修正案murase_syuka

s/素敵な計算機のように見えるインタプリタ/高級計算機と見ることができるインタプリタ/

ーーー

名前:
コメント:

タグ:

+ タグ編集
  • タグ:

このサイトはreCAPTCHAによって保護されており、Googleの プライバシーポリシー利用規約 が適用されます。

最終更新:2011年02月24日 08:29
ツールボックス

下から選んでください:

新しいページを作成する
ヘルプ / FAQ もご覧ください。