定义函数变量的两种形式

(define funcname 
  (lambda (arg1 ... argn)
    exp1 ... expn))

(define (funcname arg1 ... argn)
  exp1 ... expn)

举例:

#lang racket
(define (addx x)
  (lambda (y) (+ y x)))

(define addx8 (addx 8))
(define addx9 (addx 9))

(addx8 100)
(addx9 100)

(define addy 
  (lambda (x) 
    (lambda (y) (+ y x))))

(define addy8 (addy 8))
(define addy9 (addy 9))

(addy8 100)
(addy9 100)

(define (fun x y) (+ x y))
(fun 3 9)

(define funa (lambda (x y) (+ x y) ))
(funa 3 9)

结果:

108
109
108
109
12
12
> 

原文地址:https://www.cnblogs.com/xiangnan/p/3382961.html