(define double {number --> number} X -> (* X 2)) (define plus {number --> (number --> number)} 0 X -> X X Y -> (+ 1 (plus (- X 1) Y))) (define add1 {(vector number) --> (vector number)} <> -> <> (@v N V) -> (@v (+ N 1) (add1 V))) (define whitespace*? {string --> boolean} S -> (let N (string->n S) (element? N [9 10 13 32]))) (define pi* {--> number} -> 3.142) (define average {number --> number --> number} M N -> (/ (+ M N) 2))