AE

Size: a a a
AE
AE
VL
VL
AE
AE
AE
VL
AE
(defmacro bind (fun &rest args)
"Bind fun to provided args positionally.
Args named _ remain unbound and should be provided in
subsequent funcall, e.g:
> (funcall (bind + 1 _ 2 _) 4 5)
12"
(let ((new-arglist (list))
(lambda-arglist (list)))
(dolist (a args)
(if (string= (format nil "~A" a) "_")
(let ((var (gensym)))
(push var new-arglist)
(push var lambda-arglist))
(push a new-arglist)))
`(lambda (,@(nreverse lambda-arglist))
(,fun ,@(nreverse new-arglist)))))
AE
VL
(defmacro bind (fun &rest args)
"Bind fun to provided args positionally.
Args named _ remain unbound and should be provided in
subsequent funcall, e.g:
> (funcall (bind + 1 _ 2 _) 4 5)
12"
(let ((new-arglist (list))
(lambda-arglist (list)))
(dolist (a args)
(if (string= (format nil "~A" a) "_")
(let ((var (gensym)))
(push var new-arglist)
(push var lambda-arglist))
(push a new-arglist)))
`(lambda (,@(nreverse lambda-arglist))
(,fun ,@(nreverse new-arglist)))))
VL
ДК
ДК
YK
(func $fact (param $x i64) (result i64)
(if $x (result i64)
(i64.eqz
(local.get $x))
(then
(i64.const 1))
(else
(i64.mul
(local.get $x)
(call $fact
(i64.sub
(local.get $x)
(i64.const 1)))))))
YK
YK
YK
YK
χλ