読者です 読者をやめる 読者になる 読者になる

きくらげ観察日記

好きなことを、適当に。

Gaucheで手続き以外のオブジェクトも呼び出し可能にする

Gauche

object-applyというメソッドを定義すると、手続き以外の任意のデータ型をあたかも関数であるかのように呼び出すことができます。

;; (数 数)を(* 数 数)にする
(define-method object-apply ((x <number>) (y <number>))
  (* x y))

(define x 5)
(3 x) ; => 15

以前説明したパラメータも、値の取得にこのobject-applyを利用しています。