プログラミングGaucheのP49より。
max-nという手続きを作成しその中でしかつかわない手続きならば、手続きの中に定義を書く事ができるらしい。
うれしい点
- 名前空間の消費を抑える
;; リストから最大値を表示する手続き (define (max-num lis) ;; 大きい数値を返す手続き (define (pick-greater a b) (if (> a b) a b)) (fold pick-greater -inf.0 lis)) (print (max-num '(4 3 5 2)))
なるほど。