History

dotimes: support result form

Sigrid Solveig Haflínudóttir committed 4 months ago

Commit 9c44c721 parent 15a83af2 files · +10 −6Browse files

Unified · Split

2 files
  1. boot/sl.boot +2 −2
  2. src/system.sl +8 −4
boot/sl.boot+2−2
@@ -348,8 +348,8 @@ $begin #fn("n103U00=360q@807021514220<0Te3A<7305151P:q:" #(arg-error "set!: odd · 347 unmodified lines
348348 $set! cddr) 8)) 9) receive #fn("z22021q1e32221e10e173825153e3:" #(call-with-values
349349 λ #fn(nconc) copy-list) 11) defc*r #fn("n120051218551r2~72238586>2247586515326024e22027872853292:87e6:" #(#fn(str)
350350 #fn(length) foldl #fn("n22021AF0~52C7022@40231e1P:" #(#\a #fn(str-rune) car cdr) 9) lst iota def
351−"Shorthand for " "." :doc-group list) 13) dotimes #fn("z10<0T20E872122e186e1e17315153e4:" #(for
352−#fn(nconc) λ copy-list) 14) unwind-protect #fn("n2202122q1e3e2e1232402225e121e12625e2e4e321e1e3e3:" #(let
351+"Shorthand for " "." :doc-group list) 13) dotimes #fn("z10<0KG2005188r3l23900r2G@30I7188r352360q@90722305242425E872627e186e1e17815153e489e3:" #(#fn(length)
352+<= compile-error "invalid var expression: " begin for #fn(nconc) λ copy-list) 17) unwind-protect #fn("n2202122q1e3e2e1232402225e121e12625e2e4e321e1e3e3:" #(let
353353 #:thk_auto34# λ prog1 trycatch #:e_auto34# raise) 14) throw #fn("n220212223e201e4e2:" #(raise
354354 list quote thrown-value) 9) doc-group #fn("n22021222324e22325e2230e2e41e3e2:" #(begin
355355 sym-set-doc list
src/system.sl+8−4
@@ -2241,10 +2241,14 @@ · 2240 unmodified lines
22412241 (λ ,formals ,@body)))
22422242
22432243 (defmacro (dotimes var . body)
2244− (let ((v (car var))
2245− (cnt (cadr var)))
2246− `(for 0 ,cnt
2247− (λ (,v) ,@body))))
2244+ (let* {[v (car var)]
2245+ [cnt (aref var 1)]
2246+ [nv (length var)]
2247+ [res (if (= nv 3) (aref var 2) #.(void))]}
2248+ (unless (<= nv 3)
2249+ (compile-error "invalid var expression: " var))
2250+ `(begin (for 0 ,cnt (λ (,v) ,@body))
2251+ ,res)))
22482252
22492253 (defmacro (with-bindings binds . body)
22502254 (let ((vars (map car binds))

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t