%s', '表示', $_SERVER['PHP_SELF'], '非表示'); } else { $c = 'hide'; $a = sprintf('%s | %s', $_SERVER['PHP_SELF'], '表示', '非表示'); } function aa ($t, $k) { global $a; printf("

%s -- %s [$a]

", $_SERVER['PHP_SELF'], $t, $k, '解答例を', $k); } h('演習(4)'); ?>
  1. 1/3 + 1/3 + 1/3 のデータ型は?
    >domtype(1/3+1/3+1/3)
  2. 1.0/3 + 1/3 + 1/3のデータ型は?
    >domtype(1.0/3+1/3+1/3)
  3. [変数への値の割り当て] 以下を実行してみましょう。
    reset()
    domtype(x)
    x := 1 + I
    x := 1: y := x: x, y
    x := 2: x, y
    delete x: y := x: x,y: x :=2: x, y
    sin := 1
      
  4. [関数の合成] 関数の合成は @ で表現されます。
    ex. f(g(x)) = (f@g)(x)
    また、同一関数の合成は @@ で表現されます。
    ex. f(f(f(x))) = (f@@3)(x)
    以下を実行してみましょう。
    f := x -> 1/(x+1)
    g := x -> sin(x^2)
    h := f@g
    h(a)
    
    fff := f@@3
    f(a)
      
  5. x に対して x そのものを返す関数を恒等関数(identity map)と呼びます。 恒等関数を定義してみましょう。
    >x -> x
    >?id
  6. 関数 f(x) = x2 と g(x) = √x を定義しましょう。
    >f := x -> x^2
    >g := x -> sqrt(x)
  7. f(f(g(2)) の f(f(...(f(a))...) (f を100回合成) の値を計算しましょう。
    >(f@f@g)(2)
    >(f@@100)(a)
  8. [:= の挙動] 以下を実行してみましょう。
      f := sin(x)/x
      f
      domtype(f)
      x := PI/2
      f
      delete x
      f
      domtype(f)
    
      f := x -> sin(x)/x
      domtype(f)
      x := PI/2
      f
      domtype(f)
    
      f(0)
      f(0) := 0
      f(0)