[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))
,@(map1 cadr (pair parms))))
(mac let (var val . body)
`(with (,var ,val) ,@body))
(mac withs (parms . body)
(if (no parms)
`(let ,(car parms) ,(cadr parms)
(withs ,(cddr parms) ,@body))))
let is like Gauche's scheme:let1.
See also: pair, fn