%s', '表示', $_SERVER['PHP_SELF'], '非表示');
} else {
$c = 'hide';
$a = sprintf('%s | %s', $_SERVER['PHP_SELF'], '表示', '非表示');
}
function aa ($t, $k) {
global $a;
printf("
",
$_SERVER['PHP_SELF'], $t, $k, '解答例を', $k);
}
h('演習(4)');
?>
- 1/3 + 1/3 + 1/3 のデータ型は?
>domtype(1/3+1/3+1/3)
- 1.0/3 + 1/3 + 1/3のデータ型は?
>domtype(1.0/3+1/3+1/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
- [関数の合成] 関数の合成は @ で表現されます。
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)
- x に対して x そのものを返す関数を恒等関数(identity map)と呼びます。
恒等関数を定義してみましょう。
>x -> x
>?id
- 関数 f(x) = x2 と g(x) = √x を定義しましょう。
>f := x -> x^2
>g := x -> sqrt(x)
- f(f(g(2)) の f(f(...(f(a))...) (f を100回合成) の値を計算しましょう。
>(f@f@g)(2)
>(f@@100)(a)
- [:= の挙動] 以下を実行してみましょう。
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)