Scheme事始め5:四則演算を統一的に扱う
- 四則演算をラムダ関数として扱いなおしてみる
- "+,-,*,/"の4演算はすべて2項演算なので、「演算記号」を"#"とでも表すとすれば
(# 3 4)
- のように書くこともできる
- 問題は、どうやって統一的に扱うのにどうするか
- 以下はその例。infixという関数をラムダ関数定義する。そのラムダ関数は2項とその間の演算子をそれぞれ、a bとprocとして定める
> (define infix (lambda (a proc b) (proc a b ))) > (infix 3 + 4) 7 > (infix 3 * 4) 12 > (infix 3 - 4) -1 > (infix 3 / 4) 3/4