Arc Cross Reference

withs

[macro] with (params) body ...

[macro] withs (params) body ...

[macro] let var expr body ...

Local binding constructs. These are defined in terms of fn.

with and withs are like scheme:let and scheme:let*, respectively, except these use fewer parens.

(mac with (parms . body)
  `((fn ,(map1 car (pair parms))
     ,@body)
    ,@(map1 cadr (pair parms))))

(mac let (var val . body)
  `(with (,var ,val) ,@body))

(mac withs (parms . body)
  (if (no parms) 
      `(do ,@body)
      `(let ,(car parms) ,(cadr parms) 
         (withs ,(cddr parms) ,@body))))

let is like Gauche's scheme:let1.

See also: pair, fn